【发布时间】:2021-07-30 12:32:01
【问题描述】:
我有以下由单个 $redact 步骤组成的聚合管道:
(应该退回所有记录的销售数量超过库存的产品)
$redact:
{
$cond: [
{ $gt: ["$sales", "$productInfo.0.stock"] },
"$$KEEP",
"$$PRUNE"
]
}
(上面的语法是 Compass 特有的,所以这里没有问题)
实体看起来像这样:
{
_id: 123,
sales: 60,
price: 80,
productInfo: [
{
stock: 100
}
]
}
但是,上面的查询似乎不起作用。我的推测是这个问题是由与$productInfo.0.stock 的比较引起的,因为将其替换为实体的另一个直接属性(例如price)运行没有任何问题。
应该如何指定这样的查询($cond by $gt 其中一个值来自数组/列表)?
【问题讨论】:
-
你能分享一个存储在集合中的文档示例和所需的输出吗?
标签: mongodb mongodb-query aggregation-framework spring-data-mongodb