2015-08-12 2 views
-1

У меня есть следующие структуры данных для моей модели пользователя:MongoDB Populate Совокупное разматывает

{ 
_id: object, 
name: string, 
quotes: [ { quote: string, createdAt: date } ], 
friends: [ { _id: object } ] (this refers to the _id from the user model) 
} 

Что я хотел бы сделать, это вернуть это:

{ 
    quote: string, 
    createdAt: date, 
    _id: object (friend's) 
} 
{ 
    quote: string, 
    createdAt: date, 
    _id: object (friend's) 
} 
... 

отсортированного по createdAt = Недавней к старому

+0

К сожалению, я предполагаю, что сообщение было немного голым .. Мой профиль будет иметь список «друзья», которые являются ссылками на _id от друга модели пользователя ... Я чувствую, что он должен заполнить первый .. то кавычки в каждой модели друзей - это просто ссылка на ссылку на цитату. Так что ее нужно также заполнить .. теперь оттуда у меня есть мои друзья (модель пользователя) и цитаты (модель цитаты) .. как я могу получить простой выход, как имя друга, цитата друга и createdAt? – nitropan

ответ

1

Что я понял из вашего вопроса, вы хотите размотать два элемента массива, основанные на недавнем времени.

db.user.aggregate([ 
    { 
     $unwind: "$quotes" 
    }, 
    { 
     $unwind: "$friends" 
    }, 
    { 
     $sort: { 
      "quotes.createdAt": -1 
     } 
    } 
]) 
Смежные вопросы