我有以下聚合管道,由单个 $redact:
{
$cond: [
{ $gt: ["$sales","$productInfo.0.stock"] },"$$KEEP","$$PRUNE"
]
}
步骤组成:
(应该返回记录的销售数量超过库存的所有产品)
{
_id: 123,sales: 60,price: 80,productInfo: [
{
stock: 100
}
]
}
(上面的语法特定于 Compass,所以这里没有问题)
实体看起来像:
$productInfo.0.stock
但是,上面的查询似乎不起作用。我的假设是该问题是由与 price
的比较引起的,因为将其替换为实体的另一个直接属性(例如 $cond
)运行没有任何问题。
应该如何指定这样的查询($gt
by {{1}},其中一个值来自数组/列表)?