Java Mongodb更新数据库对象

时间:2019-06-12 14:32:34

标签: java json mongodb document insert-update

我处理存储在一个集合中的上传数据。数据包含有关上传日期的信息(以整数值表示),因此我想在集合中创建一个对象,该对象包含所有上载数据的日子。每次上传时,必须更新此目标对象,以防数据在新的一天记录下来。如果同一天已经有可用数据,则不必更新对象。 该对象将构建以下内容:

{
"Content" : "UploadDates",
"value" : [123,456]
}

,并且值JSONArray应该更新。 有没有比while对象更优雅的方法,将date数组与新日期合并,然后再次插入整个对象?

编辑:我在Java / Spring 2.1.4版本和mongodb驱动程序3.8.2中实现

1 个答案:

答案 0 :(得分:0)

您可以使用$push更新操作将新值推入数组。

例如在mongo shell中:

> db.test.find()
{
  "_id": 0,
  "value": [
    123,
    456
  ]
}

使用$push更新文档:

> db.test.update({_id: 0}, {$push: {value: 789}})
WriteResult({
  "nMatched": 1,
  "nUpserted": 0,
  "nModified": 1
})

新值添加到数组的尾端:

> db.test.find()
{
  "_id": 0,
  "value": [
    123,
    456,
    789
  ]
}

如果数组字段不存在,则$push将创建该字段。