如何使用包含某些元素的数组从mongo获取文档,但是在同一订单中?
我知道$all
完成工作但忽略了元素的顺序。我的情况下的顺序很重要,我无法对数组进行排序,因为它描述了我想保留顺序的路径。
111,222,333与222,111,333
不同有没有办法在mongo聚合框架中使用$all
或其他运算符?
答案 0 :(得分:0)
你可以避免第一个“交叉”字段,只是为了让你回到MongoDB用这个命令做的调试。您应该动态创建$和运算符。
db.Test6.aggregate([
{
$project: {
_id:1,
pages:1,
intersect: {$setIntersection: [[111,666], "$pages"]},
theCondition: {$let: {
vars: {
intersect: {$setIntersection: [[111,666], "$pages"]}
},
in: {
$cond:[ {$and:[
{$eq:[{$arrayElemAt:["$$intersect", 0]}, 111]},
{$eq:[{$arrayElemAt:["$$intersect", 1]}, 666]}
]} , true, false]
}
}
}
}
}
]);