2013-04-11 266 views
1

我正在學習MongoDB幾個星期了,我仍然不知道如何在我的項目中查詢嵌套文檔。我閱讀了MongoDB文檔並搜索了很多,但我發現沒有好的解釋或教程來解決我的問題。也許你可以幫助我!在mongoDB中查詢嵌套

我有以下結構(這裏的JSON輸出)的集合:

{ 
    community: "1", 
    date: 1365680790125, 
    isIndoor: "true", 
    party: { 
     teams: [ 
      { 
       isWinner: true, 
       players: [ 
        { 
         name: "jim", 
         hits: 4, 
         isFinisher: true 
         }, 
         { 
          name: "john", 
          hits: 6, 
          isFinisher: false 
         } 
        ] 
        }, 
        { 
         isWinner: false, 
         players: [ 
          { 
           name: "mike", 
           hits: 6, 
           isFinisher: false 
           }, 
           { 
            name: "moe", 
            hits: 3, 
            isFinisher: false 
           } 
          ] 
         } 
        ] 
        }, 
        id: "3141be7f9988d872" 
       } 

現在我想在那裏「吉姆」參加的所有記錄。

我嘗試此查詢(在CoffeeScript中),但我沒有得到任何結果,我認爲它很糟糕......

query = party: 
$all:[ 
    teams: 
     $in: [ 
      player: [ 
       name: 'jim' 
      ] 
     ] 
    ] 

我希望你能幫助我理解查詢嵌套文檔。 謝謝!

回答

1

使用dot notation對查詢嵌入對象的字段:

query = { 'party.teams.players.name': 'jim' } 
+1

嘿嘿,謝謝回答!我試過你的查詢在我的數據庫(deployd平臺),它不工作..我得到所有記錄,而不是隻有記錄與球員名稱'吉姆'。然後,我在mongoDB瀏覽器外殼中試過了你的查詢,它的工作原理... – rojan21 2013-04-11 15:23:09

+2

好的......這是一個deployd中的錯誤。它現在的作品,請參閱:https://groups.google.com/forum/#!msg/deployd-users/NidQ1sT9u6o/v8oGZZa0flsJ – rojan21 2013-04-13 14:48:07

+0

我有完全相同的問題,@ rojan21,deployd返回任何查詢的所有記錄,但我找不到有關此錯誤的信息... – Danita 2013-10-21 19:20:40