欢迎您访问DoraCMS 您可以登录 或注册
  • 微信客服:476847113微信客服
  • 微信公众号微信公众号
您现在的位置是:首页 > Express

Express 4.8.x—​mongoose 查询操作

doramart2015-10-17 13:37:19
查询单独一节,是因为内容相对多,无论哪个数据库系统,查询总是功能最多的,在各种方案中,想做一个接口,通过接口操作各种储存设备

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/

所有文章未经授权禁止转载、摘编、复制或建立镜像,违规转载法律必究。

举报邮箱:doramart@qq.com

相关标签: express
取消回复
登录 参与评论

评论列表(