2013-05-15 31 views
2

我有這樣的文件:獲取一個MongoDB的文檔中數組項

對於這個_id,我想用「events.time」>時間1的所有事件(只有這些的):

{ 
    "_id": ..., 
    "events": [ 
     {"time": 345678, "value": "1"}, 
     {"time": 567890, "value": "2"}, 
     ... 
    ] 
} 

我該怎麼辦?有沒有簡單的方法從MongoDB文檔中的數組中提取數據? (我使用Python 2.7和mongod的V2.2.4)

謝謝您的回答

+0

如果您希望人們繼續回答,您應該接受一些答案。 – elyase

回答

2

在我的情況下,最好的解決方案似乎爲我的數據庫選擇另一個架構。 所以我創建了一個單獨的事件集合...

1

雖然你可以找到基於陣列的子文檔的內容的文檔,蒙戈將返回整個文檔。

除非有大量的事件,並且您不能節省網絡流量,否則您將更容易在Python中使用客戶端過濾數組。

可能它比它的價值更麻煩,但如果你真的想過濾服務器上的文檔,你可以使用聚合框架來完成。見this answer

+0

感謝您的回答。我有很多事情是的。 我得到的錯誤「類型錯誤:不可用類型:'字典'」 我想它來自$項目的一部分,但我不知道如何解決它...一個想法? –

+0

你會發布你的代碼嗎? – paulmelnikow

+0

我終於要改變我的數據庫結構。我正在創建一個事件數據庫。我認爲這將是mongo的一種更自然的用法,也是更有效的方法。 我對不對? –

相關問題