大佬教程收集整理的这篇文章主要介绍了node.js – MongoDB:尝试使用aggregate $unwind来获取嵌入文档,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
[ { _id: ObjectID name: "Matthew" Photos: [ { _id: ObjectID url: "http://www.example.com/photo1.jpg" created: Date("2013-02-01") },{ _id: ObjectID url: "http://www.example.com/photo3.jpg" created: Date("2013-02-03") } ] },{ _id: ObjectID name: "Bob" Photos: [ { _id: ObjectID url: "http://www.example.com/photo2.jpg" created: Date("2013-02-02") },{ _id: ObjectID url: "http://www.example.com/photo4.jpg" created: Date("2013-02-04") } ] } ]
我解决此问题的第一个尝试是找到所有照片不为空的用户,并按创建日期对其进行排序:
User.find({images:{$ne:[]}}).sort({"images.created":-1})
不幸的是,这不起作用,因为我需要它.它按最新图像对用户进行排序,但仍返回所有图像,并且无法限制该功能返回的图像数量.
我开始研究聚合,看起来它可能是我正在寻找的解决方案,但我很难找到如何让它工作.
理想情况下,我想要返回的结果类型如下:
results: [ { _id: ObjectID (from Photo) name: "Bob" url: "http://www.example.com/photo4.jpg" created: Date("2013-02-04") } { _id: ObjectID (from Photo) name: "Matthew" url: "http://www.example.com/photo3.jpg" created: Date("2013-02-03") } ]
每个结果应该是一张照片,我应该能够将结果限制为特定的数量,并跳过分页查看的结果.
如果您需要更多信息,请与我们联系,并感谢您的回复.
db.users.aggregate( { $project: {"Photos" : 1,_id: 0,name:1 }},{ $unwind: "$Photos" },{ $sort: {"Photos.created" : -1} },{ $skip: 1 },{ $limit: 2 } )
结果将是这样的:
{ "result" : [ { "name" : "Matthew","Photos" : { "_id" : 2,"url" : "http://www.example.com/photo3.jpg","created" : "2013-02-03" } },{ "name" : "Bob","Photos" : { "_id" : 3,"url" : "http://www.example.com/photo2.jpg","created" : "2013-02-02" } } ],"ok" : 1 }
以上是大佬教程为你收集整理的node.js – MongoDB:尝试使用aggregate $unwind来获取嵌入文档全部内容,希望文章能够帮你解决node.js – MongoDB:尝试使用aggregate $unwind来获取嵌入文档所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。