Node.js 中 MongoDB 数据库操作
起步
然后添加模块
示例
导入 MongoDB
连接数据库
在进行增删查改操作前先要获取到collection
:
添加数据
插入单条数据
123456collection.inserOne({'name':'shine'},function(err, result){if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});插入多条数据
多条数据采用数组形式添加到数据库中123456collection.inserMany([{'name':'shine'},{'age':23}],function(err, result){if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});
更改数据
过滤得到数据,在{$set:{ 需要更改的数据 }}
里改。
更改一条数据
更改过滤后得到的所有数据的第一条数据12345678collection.updateOne({'name':'shine'},{$set:{'age':20}},function(err, result){if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});更改所有数据
将过滤到的多条数据全部更新12345678collection.updateOne({'name':'shine'},{$set:{'age':20}},function(err, result){if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});
删除数据
删除单条数据
删除过滤后所有数据中的第一条数据123456collection.deleteOne({'name':'shine'},function(err, result){if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});删除所有数据
删除过滤后所有数据123456collection.deleteMany({'name':'shine'},function(err, result){if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});
查询数据
查找数据需要将数据转换成(toArray()
)数组
查找
collection
下的所有数据123456colleciotn.find({}).toArray(function(err, result) {if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});查找含有指定数据的所有数据
123456colleciotn.find({'name':'shine'}).toArray(function(err, result) {if (!err){console.log(result);}db.close(); //操作完成,关闭数据库});
使用 mongoose 来操作数据库
起步
添加 mongoose 模块
|
|
导入模块
|
|
连接数据库
|
|
示例
mongoose 名词解释
Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
Entity : 由Model创建的实体,他的操作也会影响数据库
Schema 生成 Model,Model 创造 Entity,Model 和 Entity 都可对数据库操作造成影响,但 Model 比 Entity 更具操作性。
定义 Model
声明自定义的名称
生成 Schema
访问 Model
创建 Entity
增删改查
增加数据
方式一:通过 entity 来添加
创建完实体之后直接通过save()
来保存数据1myEntity.save();方式二:通过 model 来添加
该方法可以不需要创建实体12345myModel.create({name : 'shine',age : 23,date : Date.now});多条数据可以在数组中添加json数据
删除数据
Model 和 Entity 都是用 remove()
方法来删除数据
删除一条数据
通过查询找到相应的数据中的第一条数据并删除123456myModel.findOne({'name':'shine'}, function(err, doc){doc.remove(); //doc就是指找到的那条数据});myModel.findById('3asd87a9872892379a', function(err, doc){doc.remove(); //doc就是指找到的那条数据});删除所有数据
找到含有相应数据的所有数据全部删除12//删除所有含有{'name':'shine'}的数据myModel.remove({'name':'shine'});
更新数据
更新单条数据
方式一:直接找到单条数据通过save更新
1234myModel.findById('3asd87a9872892379a', function(err, doc){doc.age = 20;doc.save(); //doc对象属于Entity,也能使用save方法});方式二:通过Model使用update更新
1myModel.update({'name':'shine'}, {$set:{'age':20}});
更新多条数据
通过添加{multi : true}
来设置找到的多条数据1myModel.update({'name':'shine'}, {$set:{'age':20}}, {multi : true});
查找数据
直接搜索查询
其中第二个参数是为了过滤查询到的结果1myModel.find({'name':'shine'}, _id);条件查询(链式搜索)
通过添加搜索条件来将结果进行过滤12345678myModel.find({'name':'shine'}).where('age').gt(10).limit(10).sort('-age').select('name').exec(function(err, res){console.log(res);}); //只要在执行exec方法时才执行查询,而且必须有回调函数详细 API 可以通过 Aggregation Pipeline Operators 查询