Mongodb 如何在$lookup Mongoose中对对象数组执行嵌套条件

Mongodb 如何在$lookup Mongoose中对对象数组执行嵌套条件,mongodb,mongoose,mongoose-schema,Mongodb,Mongoose,Mongoose Schema,我有两个文件如下 A={ _身份证: 用户:{ 类型:ObjectId, 参考:“用户” } .... } B={ _身份证: a:{ 类型:mongoose.Schema.Types.ObjectID 裁判:“a” }, 内容:[ { 地位:{ c:字符串 } } ] } 我需要获取详细信息,包括b,其中内容可以为空或状态。c===‘完成’用户。 A结果中必须包含详细信息,如果不满足条件,b可以为空 我使用下面的方法,但无法得到预期的结果 聚合([ { $match:{$expr:{$an

我有两个文件如下

A={
_身份证:
用户:{
类型:ObjectId,
参考:“用户”
}
.... 
}
B={
_身份证:
a:{
类型:mongoose.Schema.Types.ObjectID
裁判:“a”
},
内容:[
{
地位:{
c:字符串
}
}
]
}
我需要获取详细信息,包括b,其中内容可以为空或状态。c===‘完成’用户。 A结果中必须包含详细信息,如果不满足条件,b可以为空

我使用下面的方法,但无法得到预期的结果

聚合([ { $match:{$expr:{$and:[{user:}]} }, { $lookup:{ 从:“b”, localField:“\u id”, 外域:“a”, 如:‘b’ } }, { $unwind:$b }, { $match:{$expr:{$and:[{$eq:[“$b.content.status.c”,“done”]}]} }, ]).exec(console.log); 有时我得到一个空白数组,尽管我在A中有记录,b可以是[],或者结果“c”可以是“完成”