Java MongoClient添加新的嵌入式文档
我在mongodb中有以下数据类型Java MongoClient添加新的嵌入式文档,java,mongodb,micronaut,micronaut-data,Java,Mongodb,Micronaut,Micronaut Data,我在mongodb中有以下数据类型 { "_id" : ObjectId("60007b3abc54b5305e9f5601"), "description" : "Mens", "name" : "Men" } 由于上述数据已经是现有数据,现在使用MongoClient,我希望插入基于\u id的新嵌入文档,如下所示 { "_id&
{
"_id" : ObjectId("60007b3abc54b5305e9f5601"),
"description" : "Mens",
"name" : "Men"
}
由于上述数据已经是现有数据,现在使用MongoClient,我希望插入基于\u id的新嵌入文档,如下所示
{
"_id" : ObjectId("60007b3abc54b5305e9f5601"),
"description" : "Mens",
"name" : "Men",
"subCategory" : [{
"name" : "This is name update",
"description" : "This is update"
}]
}
一旦插入了数组,我又需要向数组中添加另一项,如下所示
{
"_id" : ObjectId("60007b3abc54b5305e9f5601"),
"description" : "Mens",
"name" : "Men",
"subCategory" : [{
"name" : "This is name update",
"description" : "This is update"
},
{
"name" : "This is name update",
"description" : "This is update"
}]
}
要更新的代码:
import static com.mongodb.client.model.Filters.eq;
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("some_db_name");
MongoCollection<Document> collection = database.getCollection("some_database");
Document document = collection.find(eq("_id", new ObjectId("60007b3abc54b5305e9f5601")))
.first();
Object object = document.get("subCategory");
List<Document> documents = new ArrayList<>();
if(object != null) {
documents = (List<Document>) object;
}
documents.add(new Document("name", "This is name update")
.append("description", "This is update"));
document.append("subCategory", documents);
collection.updateOne(eq("_id", new ObjectId("60007b3abc54b5305e9f5601")),
new Document("$set", new Document("subCategory", documents)));
导入静态com.mongodb.client.model.Filters.eq;
MongoClient MongoClient=新的MongoClient(“本地主机”,27017);
MongoDatabase=mongoClient.getDatabase(“some_db_name”);
MongoCollection collection=database.getCollection(“some_数据库”);
Document Document=collection.find(eq(“_id”,新ObjectId)(“60007b3abc54b5305e9f5601”))
.first();
Object=document.get(“子类别”);
列表文档=新建ArrayList();
if(对象!=null){
文档=(列表)对象;
}
文件。添加(新文件(“名称”,“这是名称更新”)
.append(“description”,“This is update”);
文件。附加(“子类别”,文件);
collection.updateOne(eq(“_id”,新ObjectId)(“60007b3abc54b5305e9f5601”),
新文件(“$set”,新文件(“子类别”,文件));
阅读文档:document.get(“子类别”)此对象在开始时不存在。所以List documents=(List)document.get(“子类别”);如果子类别不可用,则将不起作用present@SanJaisy现在更新。看看。@SanJaisy你在吗?