gpt4 book ai didi

java - MongoDB java通过带有字段的函数更新文档

转载 作者:行者123 更新时间:2023-12-01 14:35:39 25 4
gpt4 key购买 nike

我正在使用 mongodb 和 java,我有以下文档结构:

{
_id : ...
total_items : 34
avarage_cost : 54
}

现在我有一个项目及其成本,我想更新我的 Collection ,以便总数增加 1 并且平均成本将是正确的,最好的方法是什么?

我想过做这样的事情:

int cost = ... ;

BasicDBObject updatequery = new BasicDBObject();
updatequery.put("$inc", BasicDBObjectBuilder.start().add("total_items ", 1).get());
updatequery.put("$function", "function(){this.avarage_cost = ((this.total_items-1)*this.avarage_cost + "+cost+"/) / this.total_items;}");

这是一个好的/有效的解决方案吗?最好的方法是什么?

最佳答案

目前您无法在更新查询上运行 JavaScript 代码。 Jira 有一个 Unresolved 问题。检查问题here .

您可以按如下方式解决此问题:

  1. 获取当前对象。
  2. 如果为空,计算average_cost和total_items并插入数据库。
  3. 如果不为空,则获取当前的total_items和average_cost字段。
  4. 计算新的total_items 和average_cost 值。
  5. 使用 $set 更新这些字段查询参数。

关于java - MongoDB java通过带有字段的函数更新文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com