我正在尝试将字符串添加到 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/