Node+Mongoose常用查询中文文档
2014-05-29 13:30
253 查看
Mongoose 模型提供了 find, findOne, 和 findById 方法用于文档查询。
与 Model.find 相同,但只返回单个文档
与 findOne 相同,但它接收文档的 _id 作为参数,返回单个文档。_id 可以是字符串或 ObjectId 对象。
返回符合条件的文档数。
删除符合条件的文档。
查询符合条件的文档并返回根据键分组的结果。
当查询比较复杂时,用 where:
有时我们需要在 mongodb 中使用 javascript 表达式进行查询,这时可以用 find({$where : javascript}) 方式,$where 是一种快捷方式,并支持链式调用查询。
使用 update 子句更新符合指定条件的文档,更新数据在发送到数据库服务器之前会改变模型的类型。
注意:为了向后兼容,所有顶级更新键如果不是原子操作命名的,会统一被按 $set 操作处理,例如:
如果不提供回调函数,所有这些方法都返回 Query 对象,它们都可以被再次修改(比如增加选项、键等),直到调用 exec 方法。
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 });
相关文章推荐
- Node+Mongoose常用查询中文文档
- 中文参考手册--8.MySQL教程--8.3常用查询的例子
- MySQL中文参考手册-- 常用查询的例子
- Django 1.10 中文文档------3.2.2 查询操作making queries
- Node使用mongoose查询一直为空的原因
- 【spring+hibernate学习文档】---中文参数查询
- MAC下常用命令的中文帮助文档(man) 出现错误
- mongodb子文档处理--常用的mongoose方法
- Node.js 手册查询-3-Mongoose 方法
- 第7章-使用ORM类库Mongoose提升你的Node.js数据-7.7.嵌套的文档
- Django 1.0 中文文档-----查询方法参考
- node.js相关的中文文档及教程 (转)
- (转)nodeJS 中文API node.js 中文文档
- 【Node.js】mongoose教程05--查询
- nodejs npm package.json中文文档
- MySQL中文参考手册-- 常用查询的例子
- Django 1.0 中文文档-----查询方法参考 value_list
- node.js相关的中文文档及教程
- node.js的API中文文档详解
- 前端常用技术中文文档地址