Model.find() 查找符合条件的所有文档
以下选项仅适用于find()
- tailable
- sort
- limit
- skip
- maxscan
- batchSize
- comment
- snapshot
- readPreference
- hint
Model.findById() 根据id查询文档
通过其id字段查找单个文档。findById(id)几乎等于findOne({ _id: id })。如果要按文档查询`id,请使用findById()代替findOne()`
Model.findOne() 查找一个文档
Model.count() 计算数据库集合中匹配文档的数量(弃用)
Model.estimatedDocumentCount() 计算数据库集合文档的数量(最快的方式)
Model.where() 创建一个查询,应用传递的条件,然后返回查询。
例如,代替编写:
User.find({age: {$gte: 21, $lte: 65}}, callback);
User.find({...},{_id:1,name:1}) 返回指定字段
我们可以这样写:
User.where('age').gte(21).lte(65).exec(callback);
由于Query类还支持where您可以继续链接
User
.where('age').gte(21).lte(65)
.where('name', /^b/i)
... etc
Model.prototype.$where()
参量
- «String | Function»参数是JavaScript字符串或匿名函数
返回值:
- «查询»
创建一个Query并指定一个$where条件。
有时您需要使用JavaScript表达式查询mongodb中的内容。您可以通过进行操作find({ $where: javascript }),也可以通过查询链或从您的猫鼬模型中使用猫鼬快捷方式$ where。
Blog.$where('this.username.indexOf("val") !== -1').exec(function (err, docs) {});
Model.findOneAndUpdate()
查找文档并更新
Parameters
- [conditions] «Object»
- [update] «Object»
- [options] «Object» optional see Query.prototype.setOptions()
- [options.lean] «Object» if truthy, mongoose will return the document as a plain JavaScript object rather than a mongoose document. See Query.lean().
- [callback] «Function»
例子:
A.findOneAndUpdate(conditions, update, options, callback) // executes
A.findOneAndUpdate(conditions, update, options) // returns Query
A.findOneAndUpdate(conditions, update, callback) // executes
A.findOneAndUpdate(conditions, update) // returns Query
A.findOneAndUpdate() // returns Query
例:
var query = { name: 'borne' };
Model.findOneAndUpdate(query, { name: 'jason bourne' }, options, callback)
// is sent as
Model.findOneAndUpdate(query, { $set: { name: 'jason bourne' }}, options, callback)
Model.findByIdAndUpdate()
根据id查询并更新
例:
Model.findByIdAndUpdate(id, { name: 'jason bourne' }, options, callback)
// is sent as
Model.findByIdAndUpdate(id, { $set: { name: 'jason bourne' }}, options, callback)