1
我有這種情況。我收集了發佈的消息。消息可以共享(如在Facebook上)。每次共享消息時,都會創建一個新消息,其中包含共享哪條消息的信息,哪條消息是原始消息,並且內容可能會被更改。一個單一的文件看起來是這樣的:MongoDB組+排序不起作用
{
"_id": <id>
"source": <source_id> // if it's original, own id is used
"shared_from": <message_id>
"trending": 4,
"created": <Datetime>
}
的trending
場告訴我的消息的「質量」。
現在,這裏是問題 - 我需要獲得一些最好的消息。我也需要他們來源獨一無二。以下是我想出了,它應該工作(但事實並非如此)
db.Messages.aggregate({
{ $sort: { trending: -1 } },
{ $group: { _id: "$source", doc_id: { $first: "$_id" } } },
{ $project: { _id: "$doc_id" } },
{ $limit: 6 }
})
當我這樣做,我得到徹底搞砸了結果。它根本沒有排序。這只是隨機的。我錯過了什麼?
大聲笑我不會想到這一點,thanx :) –