#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 /… точно