Javascript 在$in中使用变量

Javascript 在$in中使用变量,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我定义了一个请求变量,由于某些原因,我无法在$in块中使用它: { $lookup:{ 来自:“用户”, as:'用户', 让我们:{ “blogIds”:“$blog.id” }, 管道:[{ $项目:{ id:1, 用户名:1, 图片:1,, 博客:1 }, }, { $match:{ 博客:{ $in:[“$$blogIds”] } } }, ] } } 我做错了什么 如果我尝试在不使用“$addFields”的情况下发送,$match: { $lookup:{ 来自:“用户”, as:

我定义了一个请求变量,由于某些原因,我无法在$in块中使用它:

{
$lookup:{
来自:“用户”,
as:'用户',
让我们:{
“blogIds”:“$blog.id”
},
管道:[{
$项目:{
id:1,
用户名:1,
图片:1,,
博客:1
},
},
{
$match:{
博客:{
$in:[“$$blogIds”]
}
}
},
]
}
}
我做错了什么

如果我尝试在不使用“$addFields”的情况下发送,
$match

{
$lookup:{
来自:“用户”,
as:'用户',
让我们:{
“blogIds”:“$blog.id”
},
管道:[{
$项目:{
id:1,
用户名:1,
图片:1,,
博客:1
},
},
{
$addFields:{
字段:“$$blogIds”
}
},
]
}
}

文档示例:


lorem ipsum dolor amen.

您不能将内部字段用作另一个内部字段的输入

还有另一种方式expression
$expr
操作符来处理这种情况,
$expr
可以构建查询表达式,用于比较
$match
阶段中同一文档中的字段

{ $match: { $expr: { $in: ["$$blogIds", "$blogs"] } } }

您是如何尝试使用该属性的?@Teemu,我用
$addFields
发送了该属性,这很奇怪,但是它对我没有任何帮助。请在您的问题中发布一些示例/示例文档。仍然没有帮助。您希望在您的问题中解释更多。请告诉我您可以在问题中澄清什么?