Как получить общее количество элементов массива для определенного поля в коллекции MongoDB? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть пример структуры json:

[
  {
    "a": 2,
    "b": [
      2
    ]
  },
  {
    "a": 2,
    "b": [
      2,
      3
    ]
  },
  {
    "b": [
      2,
      3,
      4
    ]
  },
  {
    "a": 2
  }
]

Я хочу подсчитать общее количество элементов в коллекции для поля b.

В настоящее время я используюJava-код для буквального обхода каждого документа и подсчета размера массива b и добавления.

Однако, пока я просматривал статьи, связанные с MongoDB (я новичок в MongoDB), я обнаружил, что MongoDBбогатые агрегаты и фильтры.Поэтому я подумал, можно ли получить общее количество элементов массива для поля b в коллекции, используя агрегаты или фильтры Mongo, без написания кода Java.

1 Ответ

0 голосов
/ 24 сентября 2018

Вы можете использовать агрегирование следующим образом:

db.mycollection.aggregate([
    { $project: { count: { $size: "$b" } } }
])

Здесь - документы для оператора $size.

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