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”可以是“完成”