Как найти группу по полю user_id и заполнить из другой таблицы в MongoDB

#mongodb #mongoose #mongodb-query #aggregation-framework #aggregate

#mongodb #мангуст #mongodb-запрос #агрегация-фреймворк #агрегировать

Вопрос:

Я очень новичок в MongoDB и у меня проблемы с получением желаемых результатов.

MongoDB v: 4.2.0

Мне просто нужны данные в формате (что-нибудь вроде этого). :

 {
    array[ array[{ bot, user_response , user_id }] ] where client_id = '1234'
}
 

Дополнительное объяснение для вывода: мне нужен массив сведений об уникальных пользовательских чатах, для которых были отправлены чаты client_id = 1234 .

Для каждого уникального user_id мне нужен один массив, содержащий все его совпадения (например, в group by ).

также можно заполнить бота из chatSchema таблиц:

     chatSchema {
{
    _id: {
        type : String,
        unique : true,
        required : true
    },
    content: {
      type: Array,
      required: true,
      trim: true,
    },
    response: {
      type: Array
    },
  }
}
 

Моя структура таблицы выглядит следующим образом :

     {
    "_id": {
        "$oid": "600efa3592bd1f61be91afc5"
    },
    "bot": "4",
    "user_response": {
        "type": "button",
        "text": "Restart",
        "value": "restart",
        "id": "restart"
    },
    "user_id": "a34ba8505477",
    "client_id": "1234",
    "createdAt": {
        "$date": "2021-01-25T17:04:53.083Z"
    },
    "updatedAt": {
        "$date": "2021-01-25T17:04:53.083Z"
    },
    "__v": 0
}

{
    "_id": {
        "$oid": "600efa3a92bd1f61be91afc6"
    },
    "bot": "1",
    "user_response": {
        "type": "button",
        "text": "thanks",
        "value": "2",
        "id": "2"
    },
    "user_id": "8866b1863079",
    "client_id": "1234",
    "createdAt": {
        "$date": "2021-01-25T17:04:58.053Z"
    },
    "updatedAt": {
        "$date": "2021-01-25T17:04:58.053Z"
    },
    "__v": 0
}

{
    "_id": {
        "$oid": "600efa3d92bd1f61be91afc7"
    },
    "bot": "2",
    "user_response": {
        "type": "button",
        "text": "Girl",
        "value": "4",
        "id": "4"
    },
    "user_id": "8866b1863079",
    "client_id": "1234",
    "createdAt": {
        "$date": "2021-01-25T17:05:01.282Z"
    },
    "updatedAt": {
        "$date": "2021-01-25T17:05:01.282Z"
    },
    "__v": 0
}
 

Комментарии:

1. можете ли вы предоставить надлежащий ожидаемый результат в формате json в соответствии с вашими документами.

2. @turivishal Я хочу такой результат: limitless-plateau-08631.herokuapp.com/v1/chat /… точно