2013-04-11 223 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