У меня есть две коллекции. категории и сообщений , если мы добавим сообщение, связанное с любыми категориями (мы можем добавить несколько категорий к одному сообщению)
Вот пример json Я пытаясь добиться в результате:
{
"data": [
{
"title": "Games",
"data": [
{
"_id": "5e954c92fbc0f41dd41fd5c0",
"subscription_type": "Free",
"post_category": [
"5e858166a7816d1c393ce198",
"5e85817ea7816d1c393ce199"
],
"status": true,
"created_at": "2020-04-14T05:39:29.979Z",
"title": "cricket",
"user_id": "5e54f8358a27905a2ebc49e0",
"content_type": "c1",
"description": "desc",
"thumbnail": "de5C2igSNR42769979"
}
]
},
{
"title": "Movies",
"data": [
{
"_id": "5e954c92fbc0f41dd41fd5c0",
"subscription_type": "Free",
"post_category": [
"5e858166a7816d1c393ce198",
"5e85817ea7816d1c393ce199"
],
"status": true,
"created_at": "2020-04-14T05:39:29.979Z",
"title": "moviename",
"user_id": "5e54f8358a27905a2ebc49e0",
"content_type": "c1",
"description": "desc",
"thumbnail": "de5C2igSNR42769979",
"postUrl": "yMv1Y4so7h42769979",
"__v": 0
}
]
}
]
из каждой категории мне нужно 10 сообщений, которые являются самыми последними. Есть ли способ добиться желаемого результата? // =========================================== Я пробовал это, но не смог получить вывод?
{
'$lookup': {
'from': 'posts',
'pipeline': [
{ '$match': {'status': true ,'content_type':'c1'}
}],
'as': 'postinfo'
}
}
{'$unwind': '$postinfo'},
{
'$sort': {'created_at': -1}
}
{
'$group': {
"_id":'$post_category',
"name": { "$first": "$name" },
"archives": {
"$push": "$$ROOT"
}
}
}