gpt4 book ai didi

java - 使用 Java 向 MongoDB 中的数组添加值

转载 作者:行者123 更新时间:2023-11-29 04:27:21 24 4
gpt4 key购买 nike

我有一个文档存储在 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) {

}

The picture shows what the document looks like in MongoDB Compass after the first method is executed

图片显示了第一个方法执行后文档在MongoDB Compass中的样子

最佳答案

您的 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));

该代码将:

  • 找到 name=listName 的文档
  • newVocabTerm 的值附加到 terms 数组中
  • newDefinition 的值附加到 definitions 数组
  • 返回更新后的文件(这部分是可选的)

关于java - 使用 Java 向 MongoDB 中的数组添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45597271/

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