2011-12-17 87 views
7

財產比方說,我有一個像這樣的文件:MongoDB的查詢對象列表

{ 
    _id: "cow", 
    comments: [ 
     {user: "karl", comment: "I like cows.", at: /*a date*/}, 
     {user: "harry", comment: "Cows are the best.", at: /*a date*/} 
    ] 
} 

現在我想收集所有意見,即留在我的分貝"karl"。或者只是某個日期的那些。 "comments"已編入索引,我該如何查詢?

回答

9

喜歡的東西:

db.foo.find({"comments.user":"karl", "comments.at":{$gt:{dateObject}}); 

沒有測試過,但你的想法;您可以在項目上深入瞭解。

我建議你去通過這個網站,因爲它促使你通過互動式教學的大量工作:Interactive Tutorial

6

您應該使用$ elemMatch以匹配相同的文檔不止一個條件。

喜歡的東西:

db.foo.find({comments: {"$elemMatch": {user: "karl", at: {$gt:{dateObject}}}}) 

詳情請參閱here

+0

你的鏈接導致匯合登錄屏幕.... – drevicko 2013-07-16 11:20:30

+1

MongoDB的網站改變了文檔的URL - 反正我更新與新網站相關的事情的答案。 – 2013-07-16 15:26:04