2014-01-22 154 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; });