嵌套数组的Mongo聚合"/>
具有ID嵌套数组的Mongo聚合
我有一个Model
,其结构类似于此:
{
"_id": ObjectId("5c878c5c18a4ff001b981zh5"),
"books": [
ObjectId("5d963a7544ec1b122ab2ddc"),
ObjectId("5d963be01f663d168f8ea4dc"),
ObjectId("5d963bcb1f663d168f8ea2f4"),
ObjectId("5d963bdf1f663d16858ea7c9"),
}
现在,我想使用聚合框架来获取仅填充书籍的列表,例如:
{ _id: ObjectId("5d963a7544ec1b122ab2ddc"), title: ...., ... },
..
回答如下:.aggregate([
{
$lookup: {
from: 'books',
let: { books: '$books' },
pipeline: [{ $match: { $expr: { _id: { $in: ['_id', '$$books'] } } } }],
as: 'bookInfos'
}
},
{ $unwind: '$bookInfos' },
{ $replaceRoot: { newRoot: '$bookInfos' } }
])
更多推荐
具有ID嵌套数组的Mongo聚合
发布评论