Поля документов в MongoDB могут содержать не только примитивы, но и объекты, причем любого уровня вложенности. Давайте посмотрим на примерах, как с ними работать.
Пример
Для примера рассмотрим следующую коллекцию:
[
{
"name": "john",
"addr": {
"country": "Britain",
"city": "London"
},
},
{
"name": "luis",
"addr": {
"country": "Britain",
"city": "London"
},
},
{
"name": "eric",
"addr": {
"country": "Britain",
"city": "Manchester"
},
},
{
"name": "kyle",
"addr": {
"country": "France",
"city": "Paris"
},
}
]
Давайте напишем условие, которое получит всех юзеров из британии:
let cond = {'addr.country': 'Britain'};
let res = await coll.find(cond).toArray();
console.log(res);
Из приведенной коллекции получите всех юзеров из Лондона.
Пример
Давайте рассмотрим коллекцию с более сложной структурой:
[
{
"employee": {
"name": "john",
"addr": {
"country": "Britain",
"city": "London"
},
"position": {
"name": "programmer",
"salary": 1000
}
}
},
{
"employee": {
"name": "luis",
"addr": {
"country": "Britain",
"city": "London"
},
"position": {
"name": "programmer",
"salary": 1000
}
}
},
{
"employee": {
"name": "eric",
"addr": {
"country": "Britain",
"city": "Manchester"
},
"position": {
"name": "programmer",
"salary": 2000
}
}
},
{
"employee": {
"name": "kyle",
"addr": {
"country": "France",
"city": "Paris"
},
"position": {
"name": "programmer",
"salary": 2000
}
}
}
]
Давайте напишем условие, которое получит всех юзеров из британии:
let cond = {'employee.addr.country': 'Britain'};
let res = await coll.find(cond).toArray();
console.log(res);
Из приведенной коллекции получите
всех работников с зарплатой 2000
.