一文学会mongoose如何对mongoDB进行增删改查

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 参考文献官网官方指南官方 API 文档

一文学会mongoose如何对mongoDB进行增删改查


参考文献


  • 官网
  • 官方指南
  • 官方 API 文档


起步


  • 安装
npm i mongoose

简单示例

const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/test', { useMongoClient: true })
mongoose.Promise = global.Promise
// 创建一个模型(就是在设计数据库)
// MongoDB 是动态的,非常灵活,只需要在代码中设计数据库就可以了
// mongoose 这个包就可以让设计编写过程变的非常的简单
let Cat = mongoose.model('Cat', { name: String })
// 实例化一个 Cat
let kitty = new Cat({ name: 'Zildjian' })
// 持久化保存 kitty 实例
kitty.save(err => {
  if (err) {
    console.log(err)
  } else {
    console.log('meov')
  }
})


官方指南


设计 Scheme 发布 model

const mongoose = require('mongoose')
const Schema = mongoose.Schema
mongoose.connect('mongodb://localhost/test')
// 设计文档结构
let userSchema = new Schema({
  username: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  email: {
    type: String
  }
})
// 将文档结构发布为模型
// mongoose.model 方法就是用来将一个架构发布为 model
// 第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称,mongoose 会自动将大写名词的字符串生成 小写复数 的集合名称(User → users)
// 返回值:模型构造函数
let User = mongoose.model('User', userSchema)


增加数据


const mongoose = require('mongoose')
const Schema = mongoose.Schema
mongoose.connect('mongodb://localhost/test')
let userSchema = new Schema({
  username: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  email: {
    type: String
  }
})
let User = mongoose.model('User', userSchema)
// 增加数据
let admin = new User({
  username: 'admin',
  password: '123456',
  email: 'admin@admin.com'
})
admin.save(err => {
  if (err) {
    console.log('储存失败')
  } else {
    console.log('储存成功')
  }
})


查询数据


// 查询所有数据
User.find({
  username: '张三'
}, (err, data) => {
  if (err) {
    console.log('查询失败')
  } else {
    console.log(data)
  }
})
// 按照条件查询所有符合条件的数据
User.find({
  username: '张三'
}, (err, data) => {
  if (err) {
    console.log('查询失败')
  } else {
    console.log(data)
  }
})
// 只查找符合条件的第一个,返回一个对象形式
User.findOne({
  username: '张三'
}, (err, data) => {
  if (err) {
    console.log('查询失败')
  } else {
    console.log(data)
  }
})
// 或条件查询
User.findOne({
  $or: [
    {
      email: body.email
    },
    {
      nickname: body.nickname
    }
  ]
}, (err, data) => {
  if (err) {
    return res.status(500).send('Server Error')
  }
})


删除数据


// 按照条件删除对应的数据
User.remove({
  username: '张三'
}, (err, data) => {
  if (err) {
    console.log('查询失败')
  } else {
    console.log(data)
  }
})
// 根据条件删除一条数据
User.findOneAndRemove({
  username: '张三'
}, (err, data) => {
  if (err) {
    console.log('查询失败')
  } else {
    console.log(data)
  }
})
// 根据 id 删除一条数据
User.findByIdAndRemove(id, [option], [callback])


更新数据


// 根据条件更新所有数据
User.findByIdAndUpdate('id', (err, data) => {
  if (err) {
    console.log('更新失败')
  } else {
    console.log(data)
  }
})
// 根据指定条件更新一个
User.findOneAndupdate([conditions], [update], [options], [callback])
// 根据 id 更新一个
User.findByIdAndUpdate(id, {
  password: '123'
}, (err, ret) => {
  if (err) {
    console.log('更新失败')
  } else {
    console.log('更新成功')
  }
})


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
NoSQL 数据可视化 关系型数据库
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
200 0
|
JSON NoSQL MongoDB
mongodb基本操作,增删改查,查询,索引,权限机制
mongodb基本操作,增删改查,查询,索引,权限机制
|
存储 NoSQL Java
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
628 0
|
5月前
|
SQL NoSQL API
MongoDB 增删改查 常用sql总结
MongoDB 增删改查 常用sql总结
214 1
|
6月前
|
NoSQL MongoDB 数据库
MongoDB的CURD(增删改查操作)
MongoDB的CURD(增删改查操作)
90 0
|
SQL NoSQL API
五分钟叫你学会操作MongoDB增删改查
五分钟叫你学会操作MongoDB增删改查
178 0
|
JSON NoSQL 数据库连接
[虚幻引擎 MongoDB Client 插件说明] DTMongoDB MongoDB数据库连接插件,UE蓝图可以操作MongoDB数据库增删改查。
本插件可以在UE里面使用蓝图操作MongoDB数据库, 对数据库进行查询,删除,插入,替换,更新操作。
216 0
|
NoSQL 关系型数据库 MySQL
MongoDB 基本操作 增删改查
MongoDB 基本操作 增删改查
229 0
|
XML JSON 资源调度
MongoDB(二)——备份还原,mongoose,接口,apidoc文档
是node中提供操作MongoDB的模块 能够通过node语法实现MongoDB数据库增删改查 实现用node写程序来管理MongoDB数据库‘ 可以通过执行 npm i mongoose或 yarn add mongoose的命令安装
502 0
MongoDB(二)——备份还原,mongoose,接口,apidoc文档
|
JSON NoSQL MongoDB
MongoDB(一)——增删改查,排序分页,索引,权限机制
数据库就是用来存放数据的仓库 关系型和非关系型数据库软件的项目数据 相同点:都是数据库软件,用来存放项目数据
457 0
MongoDB(一)——增删改查,排序分页,索引,权限机制