使用 Java Driver 3.4 将数据附加到 MongoDB-Document 中的数组
appending data to array in MongoDB-Document using Java Driver 3.4
我正在使用 MongoDB Java Driver 3.4 并想更新 Mongo-DB 集合中的文档(ID 为“12”)。目前,文档如下所示:
{"id" : "12", "Data" : [{"Author" : "J.K. Rowling",
"Books" : {"Harry Potter 1" : ".99", "Harry Potter 2" : ".49", "Harry Potter 3" : ".49"}},
{"Author" : "Philip Roth",
"Books" : {"American Pastoral" : ".99", "The Human Stain" : ".49", "Indignation" : ".49"}}
]}
我想通过将以下对象添加到数组 "Data" 来更新此文档:
{"Author" : "Stephen King", "Books" : {"Rose Red" : ".69", "Faithful" : ".49", "Throttle" : ".49"}}
为此我写了下面的java代码:
Document doc = new Document().append("Author", "Stephen King")
.append("Data", new Document("Rose Red", ".69")
.append("Faithful" : ".49")
.append("Throttle" : ".49"));
collection.update({"id", "12"}, {$push: {"Data" : doc.toJson()}});
IDE 通过向我展示以下内容表明最后一个语句 (collection.update...) 有问题:
我不知道这条错误消息应该告诉我什么。语句末尾有一个分号。有人知道 java 代码有什么问题吗?
P.S.: 这不是重复
(MongoDB Java) $push into array
我的问题与 Java Driver 3.4 有关。另一个问题涉及完全不同的早期版本 类.
这里有几处不正确的地方。
字段 - 从 Data
更改为 Books
分隔符 - 从 semicolon
更改为 comma
方法 - 由update
改为updateOne
,可以直接传Document
。
Document doc = new Document("Author", "Stephen King")
.append("Books", new Document("Rose Red", ".69").append("Faithful", ".49").append("Throttle", ".49"));
collection.updateOne(new Document("id", "12"), Updates.push("Data", doc));
我正在使用 MongoDB Java Driver 3.4 并想更新 Mongo-DB 集合中的文档(ID 为“12”)。目前,文档如下所示:
{"id" : "12", "Data" : [{"Author" : "J.K. Rowling",
"Books" : {"Harry Potter 1" : ".99", "Harry Potter 2" : ".49", "Harry Potter 3" : ".49"}},
{"Author" : "Philip Roth",
"Books" : {"American Pastoral" : ".99", "The Human Stain" : ".49", "Indignation" : ".49"}}
]}
我想通过将以下对象添加到数组 "Data" 来更新此文档:
{"Author" : "Stephen King", "Books" : {"Rose Red" : ".69", "Faithful" : ".49", "Throttle" : ".49"}}
为此我写了下面的java代码:
Document doc = new Document().append("Author", "Stephen King")
.append("Data", new Document("Rose Red", ".69")
.append("Faithful" : ".49")
.append("Throttle" : ".49"));
collection.update({"id", "12"}, {$push: {"Data" : doc.toJson()}});
IDE 通过向我展示以下内容表明最后一个语句 (collection.update...) 有问题:
我不知道这条错误消息应该告诉我什么。语句末尾有一个分号。有人知道 java 代码有什么问题吗?
P.S.: 这不是重复 (MongoDB Java) $push into array 我的问题与 Java Driver 3.4 有关。另一个问题涉及完全不同的早期版本 类.
这里有几处不正确的地方。
字段 - 从 Data
更改为 Books
分隔符 - 从 semicolon
更改为 comma
方法 - 由update
改为updateOne
,可以直接传Document
。
Document doc = new Document("Author", "Stephen King")
.append("Books", new Document("Rose Red", ".69").append("Faithful", ".49").append("Throttle", ".49"));
collection.updateOne(new Document("id", "12"), Updates.push("Data", doc));