修改嵌套对象值- MongoDB Java



我正在使用Java驱动程序制作MongoDB统计系统,我想知道是否有可能(以及如何)更改嵌套在许多对象内的键的值。下面是我的数据库的格式:

{
  location : “chicago”,
  stats : [
    {
      "employee" : "rob",
      "stat1" : 1,
      "stat2" : 3,
      "stat3" : 2
    },
    {
      "employee" : "krista",
      "stat1" : 1,
      "stat2" : 3,
      "stat3" : 2
    }
  ]
}

那么,例如,我如何将Rob的"stat2"更改为另一个值?我是JSON和MongoDB Java驱动程序的新手。任何帮助都是感激的!

您需要使用位置$操作符和$set来更新您想要的内容。

db.collection.update(
    { _id: <docId>, "stats.employee": "rob" }, 
    { "$set": { "stats.$.stat2": <value> } }
)

所以你匹配你的文档和所需的数组元素。更新端使用该数组索引来知道要更新的元素。$set操作符只更新指定的字段。

在Java中,使用BasicDBObject构建。

BasicDBObject query = new BasicDBObject("_id", id);
query.append( new BasicDBObject("stats.employee", "rob") );
BasicDBObject update = new BasicDBObject("$set",
    new BasicDBObject("stats.$.stat2", value));
collection.update(query,update);

相关内容

  • 没有找到相关文章

最新更新