0
我有一個Chat
模型,它有一個messages
陣列,其中包含Message
s。每個Message
都有一個dateSent
屬性和一個dateViewed
屬性。 Message
項目是嵌入式,而不是參考。貓鼬按陣列日期排序
我如何排序Chat
S按最近不看Message
(即空dateViewed
),然後再通過dateSent
? (認爲Facebook Messenger的行爲...)
這是我到目前爲止已經試過(注意:Chat
也有users
陣列):
Chat.find({users._id: userId}).sort({messages.dateViewed: -1, messages.dateSent: -1}).exec(function(err, chats){
// handle err
// handle no docs found
// handle docs found
});
上面似乎並沒有工作,因爲Chat
以不同的順序出現(與沒有sort()
的相同)。有什麼想法嗎?
編輯:建議的答案並沒有幫助我,因爲我不想給message
數組中Message
對象進行排序,而是在Message
對象排序Chats
從查詢產生的,由他們日期持有messages
陣列。
我不知道怎麼樣'消息.dateViewd:-1'被解釋,我會建議至少添加引號,只是爲了確保一切都很好:) –
@AndreyPopov是的,我已將其更改爲「{」messages.dateViewed「:-1,」messages.dateSent「:-1}',但它仍然無效... – Joum
[Mongodb:按數組對象對文檔進行排序] (http://stackoverflow.com/questions/5315658/mongodb-sort-documents-by-array-objects) – TomG