Express 4.8.x—mongoose 查询操作
查询单独一节,是因为内容相对多,无论哪个数据库系统,查询总是功能最多的,在各种方案中,想做一个接口,通过接口操作各种储存设备
mongoose 查询操作
查询单独一节,是因为内容相对多,无论哪个数据库系统,查询总是功能最多的,在各种方案中,想做一个接口,通过接口操作各种储存设备,我也有过这种想法,相信很多人都想过,这个实践过程中,最难的不是增删改的接口,而是查询操作接口,因为太千变万化了。
find 例子
User .find({}) .where('name.last').equals('Ghost') .where('age').gt(17).lt(66) .where('likes').in(['vaporizing', 'talking']) .limit(10) .sort('-age') .select('name age') .exec(callback);
find 表示找什么,如果是
{}
就表示无限制where 细化查询条件,
.where('name.last').equals('Ghost')
表示 name.last 要等于 Ghost。where('likes').in(['vaporizing', 'talking'])
表示 linkes 的值必须是 vaporizing 或 talking。.where('age').gt(17).lt(66)
表示age要大于17小于66。limit(10) 返回结果的数量要 >= 10
sort(‘-age’) 返回的结果数组根据age降序排列
select(‘name age’) 返回数据中,只包括 name 和 age字段。
exec(callback) 执行这次查询,callback(err, result_array)
findOne
findOne可查询一个,所以不需要query模式,下面是个例子:
User.findOne({ 'name.last': 'Ghost' }, 'name age', function (err, user) { … … })
这个代码的意思是,查询 name.last 为 Ghost 的User,返回的对象只包括 name 和 age字段信息。
可参看官网 http://mongoosejs.com/
很赞哦! ( 0
)