1
我對MongoDb相當陌生,我試圖讓我的腦袋圍繞分組/計數函數。我想檢索每個曲目ID的選票列表,並按他們的投票排序。你能幫我理解這個嗎?MongoDB - 密鑰計數和組
列表模式:
{
"title" : "Bit of everything",
"tracks" : [
ObjectId("5310af6518668c271d52aa8d"),
ObjectId("53122ffdc974dd3c48c4b74e"),
ObjectId("53123045c974dd3c48c4b74f"),
ObjectId("5312309cc974dd3c48c4b750")
],
"votes" : [
{
"track_id" : "5310af6518668c271d52aa8d",
"user_id" : "5312551c92d49d6119481c88"
},
{
"track_id" : "53122ffdc974dd3c48c4b74e",
"user_id" : "5310f488000e4aa02abcec8e"
},
{
"track_id" : "53123045c974dd3c48c4b74f",
"user_id" : "5312551c92d49d6119481c88"
}
]
}
我期待產生以下結果(按得票多少排序的理想,也非常包括那些票數組中沒有條目,使用軌道作爲參考。 ):
[
{
track_id: 5310af6518668c271d52aa8d,
track_votes: 1
},
{
track_id: 5312309cc974dd3c48c4b750,
track_votes: 0
}
...
]
在MySQL中,我將執行以下
SELECT COUNT(*) AS track_votes, track_id FROM list_votes GROUP BY track_id ORDER BY track_votes DESC
我一直在研究各種聚合/縮減功能的文檔,但我似乎無法爲我的特定情況獲得任何工作。
任何人都可以幫助我開始使用此查詢嗎?一旦我知道這些結構如何構建,我就可以在其他地方應用這些知識!
我在Ubuntu 12上使用mongodb版本2.0.4,所以我不認爲我有權訪問更高版本中提供的聚合函數。如果這是普遍的共識,那麼願意升級。
非常感謝提前!
非常感謝,幫助了很多:) – freshnode