java - 将字符串附加到Java中的mongoDB文档中的现有数组

标签 java arrays mongodb

我正在尝试将字符串添加到 mongoDB 文档中现有数组的末尾。

我尝试查看 mongoDB 的文档,这使我找到了 push页面及其他similar questions 。到目前为止,它们都不起作用,因为我没有自己制作的文档,它们是在数组中添加新元素时自动生成的。

Collection 中的文档:

_id: 5ce85c1e1c9d4400003dcfd9
name: "Halloween party"
category: 2
date: 2019-10-31T23:00:00.000+00:00
address: "Sample Street, london"
description: "It's Halloween, bring your costumes and your personality to the studen..."
bookings: Array
    0: "1610512"

我可以使用以下代码获取要附加字符串的文档。

Java 代码:

MongoDatabase database = mongoClient.getDatabase("KioskDB");
MongoCollection<Document> Kiosk = database.getCollection("Events");

Document searchQuery = new Document();
searchQuery.put("name", selectedActivityName);
searchQuery.put("bookings", username);

FindIterable<Document> documents = Kiosk.find(searchQuery);

for (Document document: documents){
     System.out.println(document);
}

给我以下输出

Document{{_id=5ce85c1e1c9d4400003dcfd9, name=Halloween party, category=2, date=Thu Oct 31 23:00:00 GMT 2019, address=Sample Street, london, description=It's Halloween, bring your costumes and your personality to the student Bar and join us in this age long celebration., bookings=[1610512]}}

如何在数组末尾附加一个新字符串,如下所示。

所需的最终文件

_id: 5ce85c1e1c9d4400003dcfd9
name: "Halloween party"
category: 2
date: 2019-10-31T23:00:00.000+00:00
address: "Sample Street, London"
description: "It's Halloween, bring your costumes and your personality to the studen..."
bookings: Array
    0: "1610512"
    1: "1859301"

编辑: 通过以下代码可以找到答案。

DBObject listItem = new BasicDBObject("bookings", username);
Kiosk.updateOne(eq("name", selectedActivityName), new Document().append("$push", listItem));

其中 username 是号码(例如:1859301),selectedActivityName 是名称字段的名称(例如:万圣节派对),Kiosk 是集合名称。

最佳答案

我将根据文档尝试此代码。引用号https://mongodb.github.io/mongo-java-driver/3.4/driver/getting-started/quick-start/

Document doc = new Document("name", "Halloween party")
                    .append("bookings", Arrays.asList("1859301"));

关于java - 将字符串附加到Java中的mongoDB文档中的现有数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56300878/

相关文章:

java - 如何保证一个线程在主线程执行完毕后继续执行?

java - 填写 Freemarker 模板上的组合框

java - 在 JSP 代码中访问使用 XSL 文件的 XML 文件的概念和编程

java - 如何将数字的 int[] 打印为特定模式?

javascript - NodeJS - JSON 数组推送元素但不会增加长度

ruby-on-rails - 恢复 mongodb 数据库 .bson 和 .json 文件

java - JLayeredPane,背景图像+ "icon"图层

php - 将两个或多个简单数组转换为多维数组?

mongodb - MongoDB objectid 可以只包含数字吗?

mongodb - 如果输入数组的元素至少匹配一个,则获取数组的大小