对流星集合内的数组进行排序

eaw*_*wer 4 meteor

我有这样的收集结构:

{
    _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"
},
...
Run Code Online (Sandbox Code Playgroud)

我需要的是返回此集合中的所有图像,按日期排序.

我已经尝试了以下所有方法:

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}})
Run Code Online (Sandbox Code Playgroud)

但这没什么用的.

现在甚至可以这样做吗?

Dav*_*don 9

排序仅用于对整个文档进行排序.你需要做一个findOne然后分别对图像数组进行排序.例如:

var images = Users.findOne({username: "John"}).images;
return _.sortBy(images, function(image){ return image.created; });
Run Code Online (Sandbox Code Playgroud)