在 mongoose 的聚合中填充数组的 id
Posted
技术标签:
【中文标题】在 mongoose 的聚合中填充数组的 id【英文标题】:Populate id of array in aggregation in mongoose 【发布时间】:2021-12-15 10:05:06 【问题描述】:我遇到了一个问题,请你帮我填充消息数组 id。
await Message.aggregate([
$match: $and: [ receiver , delivered: null ] ,
$group:
_id: $switch: branches: [ case: $eq: ['$sender', receiver] , then: '$receiver' ], default: '$sender' ,
receiver: $last: '$receiver' ,
message: $push: '$_id' ,
,
$project: message: 1, ,
$sort: 'sent': -1 ])
上面代码的结果是
"status": "success",
"syncat": "2021-10-31T04:13:39.935Z",
"data": [
"_id": "616b21735498275d803c7b09",
"message": [
"617cccf00ba86ff28c543475",
"617ccd3b5375bafe008cec05",
]
]
我想从 Message 模块填充消息数组的每个 id。 应该是这样的
"status": "success",
"syncat": "2021-10-31T04:13:39.935Z",
"data": [
"_id": "617cccf00ba86ff28c543475",
"message": [
//Message Data
//Message Data
]
]
我为它制作的模块是用户和消息
【问题讨论】:
你应该看看这个docs.mongodb.com/manual/reference/operator/aggregation/lookup 【参考方案1】:在message: $push: '$$ROOT'
中使用$$ROOT
【讨论】:
以上是关于在 mongoose 的聚合中填充数组的 id的主要内容,如果未能解决你的问题,请参考以下文章
与 mongoDb 和 mongoose 聚合后填充单个 ObjectId 引用