Как посчитать количество ложных значений в массиве mon go db query - PullRequest
1 голос
/ 22 февраля 2020
_id:5e4d18bd10e5482eb623c6e4
notification_obj:
 0  notification_text:"Welcome to the app and your account is created hello."
    open:false
    type:"just_click"

 1  notification_text:"Sebal started following you."
    open:true
    type:"open_profile"

 2  notification_text:"Hella started following you."
    open:false
    type:"open_profile"

Таким образом, здесь у меня есть массив array «messages_obj» в документе базы данных mon go, я хочу найти запись с помощью _id, и в этой записи я хочу посчитать «Сколько» open: false » значения там. Я хочу посчитать в этом массиве, что открыть: ложь, сколько раз. Пожалуйста, помогите с «запросом» в пн go дБ.

1 Ответ

3 голосов
/ 22 февраля 2020

Думаю, этот код поможет вам.

db.getCollection('your_collection').aggregate([
  {
    $match: { _id: ObjectId("5a544.............") }
  },
  {
    $unwind: '$notification_obj'
  },
  {
    $match: { 'notification_obj.open': false }
  },
  {
    $count: 'total'
  }
]);

Вывод:

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