Значения объекты в MongoDB

Поля документов в 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.