说我有一份文件:
{ _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的方式?