Как найти во встроенном документе Mongodb ключ, если это так?

{
   _id: "joe",
   name: "Joe Bookreader",
   addresses: [
                {
                  street: "123 Fake Street",
                  city: "Faketon",
                  state: "MA",
                  zip: "12345"
                },
                {
                  street: "1 Some Other Street",
                  city: "Boston",
                  state: "MA",
                  zip: "12345"
                }
              ]
 }

Как найти ключевую улицу, если она есть в этом документе?


person Shalu    schedule 12.05.2014    source источник
comment
В смысле что именно? Хотите найти конкретную улицу? Просто хотите узнать, существует ли он? Здесь не так много, чтобы описать, что вы хотите сделать или что вы даже пробовали.   -  person Neil Lunn    schedule 12.05.2014
comment
Я хочу найти ключ "улица", если он существует или нет, без указания его значения. Мне нужны все записи в коллекции, в которых есть ключевая улица. Я пробовал db.collection.find({ address.street: {$exists: true}}), но кажется, что точка (.) не работает с оператором $exists.   -  person Shalu    schedule 12.05.2014
comment
Это может помочь: stackoverflow.com/questions/22761423/   -  person Lalit Agarwal    schedule 12.05.2014
comment
@LalitAgarwal Почему? Это даже не связано, возможно, вы прокомментировали неправильный вопрос.   -  person Neil Lunn    schedule 12.05.2014
comment
Я бы предположил, что, как показано в ответе, вы забыли указать поле в кавычках при использовании нотации dot   -  person Neil Lunn    schedule 12.05.2014
comment
@NeilLunn Ну, это решит его проблему, это все, что я знаю. Спасибо за совет в любом случае.   -  person Lalit Agarwal    schedule 12.05.2014


Ответы (1)


Вы можете использовать оператор $exists:

db.yourCollectionName.find( { 'addresses.street': { $exists: true } } );
person Artem Petrosian    schedule 12.05.2014
comment
Спасибо! Артем забыл поставить кавычки. @Нил Спасибо! - person Shalu; 12.05.2014