Mongoose一些查询方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Model.findMongoose模型提供了find,findOne,和findById方法用于文档查询。Model.findModel.find(query,fields,options,callback)//fields和options都是可选参数简单查询Model.find({'csser.com':5},function(err,docs){//docs是查询的结果数组});只查询指定键的结果Model.find({},['first','last'],function(err,docs){//docs此时只包含文档的部分键值})Model.findOne与Model.find相同,但只返回单个文档Model.findOne({age:5},function(err,doc){//doc是单个文档});Model.findById与findOne相同,但它接收文档的_id作为参数,返回单个文档。_id可以是字符串或ObjectId对象。Model.findById(obj._id,function(err,doc){//doc是单个文档});Model.count返回符合条件的文档数。Model.count(conditions,callback);Model.remove删除符合条件的文档。Model.remove(conditions,callback);Model.distinct查询符合条件的文档并返回根据键分组的结果。Model.distinct(field,conditions,callback);Model.where当查询比较复杂时,用where:Model.where('age').gte(25).where('tags').in(['movie','music','art']).select('name','age','tags').skip(20).limit(10).asc('age').slaveOk().hint({age:1,name:1}).run(callback);Model.$where有时我们需要在mongodb中使用javascript表达式进行查询,这时可以用find({$where:javascript})方式,$where是一种快捷方式,并支持链式调用查询。Model.$where('this.firstname===this.lastname').exec(callback)Model.update使用update子句更新符合指定条件的文档,更新数据在发送到数据库服务器之前会改变模型的类型。varconditions={name:'borne'},update={$inc:{visits:1}},options={multi:true};Model.update(conditions,update,options,callback)注意:为了向后兼容,所有顶级更新键如果不是原子操作命名的,会统一被按$set操作处理,例如:varquery={name:'borne'};Model.update(query,{name:'jasonborne'},options,callback)//会被这样发送到数据库服务器Model.update(query,{$set:{name:'jasonborne'}},options,callback)查询API如果不提供回调函数,所有这些方法都返回Query对象,它们都可以被再次修改(比如增加选项、键等),直到调用exec方法。varquery=Model.find({});query.where('field',5);query.limit(5);query.skip(100);query.exec(function(err,docs){//calledwhenthe`query.complete`or`query.error`arecalled//internally});

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功