在MongoDB中,是否可以使用$ set或$ mul但是在同一文档中指定另一个字段而不是常量?

时间:2016-05-02 20:10:31

标签: mongodb aggregation-framework

说我有一份文件:

{ _id: 1, item: "ABC", supplier: "XYZ", price: 10, available: 23 }

然后我运行类似

的东西
db.products.update(
   { _id: 1, supplier: "XYZ" },
   { stock_value: {$mul: ["price", "available", 0.8] }}
)

获取文件

{ _id: 1, item: "ABC", supplier: "XYZ", price: 10, available: 23, stock_value: 184 }

我想在不将所有内容加载到客户端的情况下执行此操作。我需要能够为每个供应商指定一个不同的常数(例如0.8)。

我想我应该只使用带有$ out的聚合到同一个集合,在更新完成时覆盖整个,但是我不能为每个供应商做一个不同的aggregate()调用,因为我覆盖集合 - 将跳过所有其他供应商。是否存在某种“到位”聚合?或者一种追加$ out的方式?

0 个答案:

没有答案