我有一个存储在mongo数据库中的集合中的文档。我希望能够添加到文档中已有的两个数组。
创建文档和数组的方法:
public void addNewListName(String listName) {
MongoCollection<Document> collection = database.getCollection("lists");
ArrayList< DBObject > array = new ArrayList< DBObject >();
Document list = new Document ("name", listName)
.append("terms", array)
.append("definitions", array);
collection.insertOne(list);
}
我想在数组中添加值的方法:
public void addVocabToList(String listName, String newVocabTerm, String newDefinition) {
}
图片显示了执行第一个方法后MongoDB Compass中文档的样子
答案 0 :(得分:3)
您的addVocabToList()
实施将如下所示:
MongoCollection<Document> collection = database.getCollection("lists");
Document updatedDocument = collection.findOneAndUpdate(
Filters.eq("name", listName),
new Document("$push",
new BasicDBObject("terms", new BsonString(newVocabTerm))
.append("definitions", new BsonString(newDefinition))),
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER));
该代码将:
listName
newVocabTerm
的值附加到terms
数组newDefinition
的值附加到definitions
数组