我有一個MongoDB的集合稱爲「選票」,它看起來像這樣:的MongoDB從結果返回一個嵌套的文件
{
"_id" : "msw9ofwQSj58qiPvY",
"ballotName" : "This is the ballot name",
"votes" : [
{ "unitNumber" : "30", "voteResult" : "No", "voteDate" : ISODate("2015-02-24T05:03:22.937Z") },
{ "unitNumber" : "30", "voteResult" : "Yes", "voteDate" : ISODate("2015-02-24T05:20:02.479Z") }
]
}
我只想看到最新的「votes.voteResult」這個_id和unitNumber:30。我嘗試:
db.ballots.find(
{ $and: [
{_id: 'msw9ofwQSj58qiPvY'},
{'votes.unitNumber': '30'}
] },
{'votes.voteResult': 1, 'votes.voteDate': 1, _id: 0})
結果:
{
"votes" : [
{
"voteResult": "No",
"voteDate" : ISODate("2015-02-24T05:03:22.937Z")
},
{
"voteResult": "Yes",
"voteDate" : ISODate("2015-02-24T05:20:02.479Z")
}
]
}
看起來不錯,但我只想要一個 「voteResult」 返回。我只想要最新的一個。我似乎無法弄清楚如何得到一個嵌套的結果集,並確保它是最近的一個。如果有任何幫助,我使用Meteor/JavaScript,它可能可以處理這種編碼邏輯,但希望簡單的MongoDB查詢可以給我結果。
任何幫助,非常感謝。謝謝。
多少票,你在選票期待..你會怎麼找到「最新的」一個(通過voteDate?)。您是依靠Minimongo還是可以安裝額外的軟件包來訪問服務器端聚合功能(例如:[流星聚合](https://github.com/meteorhacks/meteor-aggregate/))? – Stennie 2015-02-24 06:15:54
Mongo中每張選票文件的總票數約爲30-100。 Meteor使用我用於開發和測試的miniMongo,是的,我可以使用流星聚合。現在閱讀它...... – 2015-02-24 07:28:52