我有这样的收集结构:
{
_id: "JPsqqGJBgpwix5AqM",
images: [
{
id: 123456,
created: Thu Nov 14 2013 22:58:11 GMT+0200 (EET),
height: 115,
width: 350,
url: "http://www.test.com/alckxm.jpg"
},
{
id: 123456,
created: Thu Jan 24 2013 01:46:55 GMT+0200 (EET),
height: 115,
width: 350,
url: "http://www.test.com/awerrkxm.jpg"
}
],
username: "John"
},
...
我需要的是返回此集合中的所有图像,按日期排序。
我尝试了以下所有方法:
return Users.findOne({username: "John"}, {created: 1})
return Users.findOne({username: "John"}, {"images.created": 1})
return Users.findOne({username: "John"}, {sort: {created: 1}})
return Users.findOne({username: "John"}, {sort: {"images.created": 1}})
但这没有任何效果。
现在甚至可以这样做吗?
答案 0 :(得分:9)
排序仅用于对整个文档进行排序。您需要执行findOne
然后单独对图像阵列进行排序。例如:
var images = Users.findOne({username: "John"}).images;
return _.sortBy(images, function(image){ return image.created; });