@hunk3r

Как посчитать кол-во совпадающих полей в mongoDb с условием и без?

Привет.
Допустим, есть коллекция users с документами вида (_id намеренно опускаю):

{
    user_id:1,
    group_id:100,
    description:null
},
{
    user_id:1,
    group_id:102,
    description:null
},
{
    user_id:1,
    group_id:100,
    description:"text"
},
{
    user_id:2,
    group_id:102,
    description:"another text"
},
{
    user_id:3,
    group_id:101,
    description:"another text"
}

1. Каким образом вывести результат с подсчётом по каждой строке вида (пример чисто для понимания логики):
{
user_id: [
1: 
      count:3,
2:
      count:1,
3:
      count:1],
group_id: [
100:
      count:2,
101:
      count:1,
102:
      count:2],
description: [
null:
      count: 2,
"text":
      count: 1,
"another text":
      count:2]
}


2. Как сгруппировать по "user_id" и подсчитать оставшиеся поля?

{
user_id: 1,
group_id: [
100:
      count: 2,
102:
      count: 1],
description: [
null:
      count: 2,
"text":
      count: 1]
},

{
user_id: 2,
group_id: [
102:
      count: 1],
description: [
"another text":
      count: 1]
},

{
user_id: 3,
group_id: [
101:
      count: 1],
description: [
"another text":
      count: 1]
}
  • Вопрос задан
  • 1243 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы