Как найти записи коллекции, содержащие строку в объектах массива в MongoDB? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть коллекция MongoDB с несколькими записями.Каждая запись имеет массив, который содержит объекты с несколькими полями.

У меня есть коллекция, как показано ниже:

[{
    "name" : "Karthik Thurairaja"
    "universities" : [ 
        {
            "name" : "Anna University",
            "city" : "Chennai"
        },
        {
            "name" : "Punjab University",
            "city" : "Chandigarh"
        },
        {
            "name" : "University of Delhi",
            "city" : "New Delhi"
        }
    ],
},
{
    "name" : "Sathish Kumar"
    "universities" : [ 
        {
            "name" : "Anna University",
            "city" : "Chennai"
        },
        {
            "name" : "University of Hyderabad",
            "city" : "Hyderabad"
        },
        {
            "name" : "University of Delhi",
            "city" : "New Delhi"
        }
    ],
}]

Мне нужно найти все записи университетовcity ​​равен Chennai.

Я пробовал запрос как ниже:

Collection.find({ universities.city : "Chennai" }).exec(...);

1 Ответ

0 голосов
/ 15 февраля 2019

Для этого можно использовать запрос $elemMatch.

Collection.find({ universities: { $elemMatch: { city: "Chennai" } } }).exec(...);

...