Как «найти» коллекцию и сравнить значение с ее внутренним объектом в MongoDB? - PullRequest
1 голос
/ 08 ноября 2011

Хммм Я не знаю, как четко сформулировать название. надеюсь, следующее объяснение будет лучше.

У меня есть такая схема:

company = new Schema {
  name: String,
  contact: {}
}

Например:

{
  name:'cnn'
  contact: {
      address:'whatever',
      phone1: '1-800-123-1234',
      url: 'cnn.com'
   }
}

Когда я делаю поиск (или findOne), я могу сделать это ..

db.company.findOne({name:'cnn'});

Что, если я хочу найти значение в «контакте»?

например. поиск записи с помощью url = 'cnn.com'

или узнать, какие записи имеют ключ "url" в "contact"

1 Ответ

4 голосов
/ 08 ноября 2011

Чтобы найти подраздел, достаточно указать путь к ключу, разделенному точками.

db.company.findOne({"contact.url": "cnn.com"})

Чтобы узнать, какие записи имеют контактный URL:

db.company.findOne({"contact.url": {$ne: null}})

Обратите внимание, что эти запросы будут полными, пока вы не создадите индекс для запрашиваемого подключа. Используйте разумно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...