mongoose基本增删改查
Posted dcyd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoose基本增删改查相关的知识,希望对你有一定的参考价值。
1.安装
打开命令行
npm i mongoose
2.连接数据库
// 引入安装的包 var mongoose = require(‘mongoose‘); mongoose.connect(‘mongodb://localhost/mongoo‘); //mongoo这里是代表数据库的名称 var db = mongoose.connection; db.on(‘error‘, console.error.bind(console, ‘连接失败‘)); db.once(‘open‘, function() { console.log(‘连接成功‘) }); // new一个schema:把一个本身非结构化的数据变成结构化 var kittySchema = new mongoose.Schema({ name: String, age:Number, gender:String }); // 根据schema得到一个model,这个model是一个class var Kitten = mongoose.model(‘Kitten‘, kittySchema);
3.增加数据
var felyne = new Kitten({ name: ‘王富贵‘,age:18,gender:‘男‘ }); felyne.save(function (err, res) { //回调第一个参数代表出错 if (err) return console.error(err); //第二个带个成功的回调参数 console.log(res) });
添加数据的方式有两种一种是userTest.save()需要实例化模型,另一种是user.create(data,callback(err,res))这种方式不用实例化模型。
4.删除数据
Kitten.remove({name:"王富贵"},function(arr,res){ console.log(res) }) //执行完成出现这样的代码 //{ n: 1, ok: 1, deletedCount: 1 } // n:条件匹配到的数据条数 // ok: 1代表语句执行成功 // deletedCount: 被删除的数量
此方法将删除命令直接发送到MongoDB,不涉及Mongoose文档。由于不涉及Mongoose文档,因此不会执行任何中间件(挂钩)
Kitten.deleteOne({name:"王富贵"},function(arr,res){ console.log(res) }) //此方法和remove类似,最多删除一个文档
此方法和remove类似,最多删除一个文档
Kitten.deleteMany({name:"王富贵"},function(arr,res){ console.log(res) }) //此方法和remove类似,从集合中删除所有匹配的文档
此方法和remove类似,从集合中删除所有匹配的文档
5.更新数据(改数据)
Kitten.update({name:"王富贵"},{$set:{age:26}},function(arr,res){ console.log(res) }) //update 只匹配查找到的第一条数据并进行更换
update 只匹配查找到的第一条数据并进行更换
Kitten.updateMany({name:"王多余"},{$set:{age:26}},function(arr,res){ console.log(res) }) //updateMany 匹配查找到的所有document并更改
updateMany 匹配查找到的所有document并更改
Kitten.updateOne({name:"王多余"},{$set:{age:36}},function(arr,res){ console.log(res) }) //updateOne 更新匹配的第一个文档
6.查找数据
Kitten.find({},function(err,res){ console.log(res) }) //查找数据库中所有数据 Kitten.find({name:‘王富贵‘},function(err,res){ console.log(res) }) //查找所有名字为王富贵的数据 Kitten.findOne({name:‘王富贵‘},function(err,res){ console.log(res) }) //查找第一个名字为王富贵的数据 Kitten.findById({_id:‘5e5b43db4464113f1843e380‘},function(err,res){ console.log(res) }) //根据id查找对应的数据
查询有三种方式find查全部符合要求,findOne查到的第一个,findById通过集合中每条数据特定的_id来查询
查询方式还可以特定条件来查找
//"$lt"(小于) //"$lte"(小于等于) //"$gt"(大于) //"$gte"(大于等于) //"$ne"(不等于) Kitten.find({age: {$ne: 18}},function (err,res) { console.log(res) //查找age不等于18的数据 })
范围查找
// "$in" // "$nin" Kitten.find({age: {$nin: [20,24]}},function (err,res) { console.log(res) //查找age不为20-24之间的数据 }) // "$in"查找20-24之间的数据 // "$nin"查找不为20-24之间的数据
or
Kitten.find({$or: [{name:‘老王‘},{name:‘王富贵‘}]},function (err,res) { console.log(res) //查找符合name为老王或者为王富贵的数据 })
增加数据中的save()要实例化model,其他皆可不用实例化model
以上是关于mongoose基本增删改查的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB数据库安装与基本操作 - mongoose - 增删改查