查询数据

99 阅读1分钟

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)