Node+Mongoose常用查询中文文档

Mongoose 模型提供了 find, findOne, 和 findById 方法用于文档查询。

Model.find

Model.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 子句更新符合指定条件的文档,更新数据在发送到数据库服务器之前会改变模型的类型。

var conditions = { name: 'borne' }
  , update = { $inc: { visits: 1 }}
  , options = { multi: true };

Model.update(conditions, update, options, callback)

注意:为了向后兼容,所有顶级更新键如果不是原子操作命名的,会统一被按 $set 操作处理,例如:

var query = { name: 'borne' };
Model.update(query, { name: 'jason borne' }, options, callback)

// 会被这样发送到数据库服务器

Model.update(query, { $set: { name: 'jason borne' }}, options, callback)

查询 API

如果不提供回调函数,所有这些方法都返回 Query 对象,它们都可以被再次修改(比如增加选项、键等),直到调用 exec 方法。

var query = Model.find({});

query.where('field', 5);
query.limit(5);
query.skip(100);

query.exec(function (err, docs) {
  // called when the `query.complete` or `query.error` are called
  // internally
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mongoose是一个在Node.js中操作MongoDB数据库的对象模型工具。它提供了一种简单而优雅的方式来定义和操作MongoDB中的文档Mongoose官方文档提供了详细的指南和API参考,帮助开发者了解和使用Mongoose。以下是Mongoose官方文档的主要内容: 1. 安装和配置:介绍了如何安装Mongoose以及配置连接MongoDB数据库的方法。 2. 模型定义:讲解了如何使用Mongoose定义模型,包括定义模式(Schema)和模型(Model)。 3. CRUD操作:介绍了如何使用Mongoose进行增删改查操作,包括创建文档查询文档、更新文档和删除文档。 4. 查询和过滤:详细介绍了Mongoose中的查询方法和过滤器,包括条件查询、排序、分页等。 5. 中间件:讲解了Mongoose中的中间件概念和使用方法,包括前置中间件、后置中间件和错误处理中间件。 6. 钩子函数:介绍了Mongoose中的钩子函数,可以在保存、更新等操作前后执行一些逻辑。 7. 数据验证:讲解了如何使用Mongoose进行数据验证,包括内置验证器和自定义验证器。 8. 引用和关联:详细介绍了Mongoose中的引用和关联概念,可以在不同集合之间建立关系。 9. 聚合查询:介绍了Mongoose中的聚合查询功能,可以进行复杂的数据聚合操作。 10. 插件:讲解了如何使用Mongoose插件扩展功能,以及一些常用的插件示例。 以上是Mongoose官方文档的主要内容,你可以通过访问Mongoose官方网站来获取更详细的信息和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值