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

Поля документов в MongoDB могут содержать не только примитивы, но и объекты, причем любого уровня вложенности. Давайте посмотрим на примерах, как с ними работать.

Пример

Для примера рассмотрим следующую коллекцию:

javascript[
  {
    "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"
    },
  }
]

Давайте напишем условие, которое получит всех юзеров из британии:

javascriptlet cond = {'addr.country': 'Britain'};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 1

Из приведенной коллекции получите всех юзеров из Лондона.

Пример

Давайте рассмотрим коллекцию с более сложной структурой:

javascript[
  {
    "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
      }
    }
  }
]

Давайте напишем условие, которое получит всех юзеров из британии:

javascriptlet cond = {'employee.addr.country': 'Britain'};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 2

Из приведенной коллекции получите всех работников с зарплатой 2000.