首页 > 代码库 > mongoose 查询操作的高级应用
mongoose 查询操作的高级应用
对于mongoose操作集合的方便之处确实不一般,但主要还是你在引用中对集合的设计,不过mongoose在使用ref关联集合的时候有限制和查出的集合的组合问题有点麻烦。不过不要紧,简单易用就行。
1.mongoose 中ref关联文档的用法
2.mongoose中populate查询关联文档
3.查询获得数组中单个集合
比如有集合:
{ "_id": 11111, "im": { "usergroup": [ { "name": "好友列表-2", "level": 1, "_id": "53c4820263256dc410e98727", "list": [ { "_user": { "nickname": "逐梦飞扬-2", "_id": 22222, "icon": "/default/heads/2.png" } }, { "_user": null }, { "_user": null }, { "_user": null }, { "_user": null }, { "_user": null } ] }, { "_id": "53c488bf95ad1de01756db88", "name": "test usergroup", "level": 1, "list": [] } ] } }
上述的_user表示关联文档,如果你只想得到usergroup中的一个;结合条件为{‘usergroup.$‘:1}就可以得到满足条件的一个代码如下:
UserModel.User.findOne({_id:11111,‘im.usergroup._id‘:‘53c488bf95ad1de01756db88‘},{‘im.usergroup.$‘:1}) .populate(‘im.usergroup.list._user‘,{icon:1,nickname:1,_id:1,name:1,remark:1}) .exec(function(err, ug){ cb(err,ug); })
上述UserModel.User是用户的mongoose model
查询后可以得到:
{ "_id": 11111, "im": { "usergroup": [ { "_id": "53c488bf95ad1de01756db88", "name": "test usergroup", "level": 1, "list": [] } ] } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。