我使用MongoDb的聚合框架进行复杂搜索。 关于上下文,称为配置文件的中心结构引用了许多子结构(例如,用户,位置等)。关于搜索,我将重用在stage $ lookup的条目'as'中声明的字段。但是,我不知道那是怎么回事。 有一个例子:
db.profiles.aggregate([{$lookup: {
from: "users",
'let': { userId: "$userId" },
pipeline: [{
$match: {
$expr: {$and: [
{$gte:["$_age",40]},
{$lte:["$_age",50]},
{$eq: ["$_id", "$$userId"]}
]}
}
}],
as: "user"}},
{ $redact: {
$cond: {
if: { $eq: [ { $size: "$$user" }, 1 ] },
then: "$$DESCEND",
else: "$$PRUNE"
}
}}]);
我收到以下错误消息:
"ok" : 0,
"errmsg" : "Use of undefined variable: user",
"code" : 17276,
"codeName" : "Location17276"
或
"errmsg" : "The argument to $size must be an array, but was of type: missing",
所以,先谢谢你的帮助。