2014-01-22 108 views
4

内部数组我有这样的收藏结构:排序流星收集

{ 
    _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}}) 

,但没有这样的工作。

现在可以做到这一点吗?

回答

9

排序仅用于排序整个文档。您需要执行findOne,然后分别对图像数组进行排序。例如:

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