2013-04-11 1 views
1

Я изучаю MongoDB в течение нескольких недель, и я до сих пор не знаю, как запросить вложенные документы в моем проекте. Я читал MongoDB-документы и много искал, но я не нашел хороших объяснений или учебников по моей проблеме. Возможно ты можешь помочь мне!Querying inested in 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), и он не работает. Я получаю все записи, а не только записи с именем игрока «jim». Затем я попробовал ваш запрос в оболочке браузера mongoDB, и он сработал ... – rojan21

+2

okay ... это ошибка в deployd. он работает сейчас, см. https://groups.google.com/forum/#!msg/deployd-users/NidQ1sT9u6o/v8oGZZa0flsJ – rojan21

+0

У меня такая же проблема, @ rojan21, deployd возвращают все записи по любому запросу, но я не могу найти информацию об этой ошибке ... – Danita

 Смежные вопросы

  • Нет связанных вопросов^_^