[英]how to insert embedded document using spring data mongodb mongotemplate
[英]How can I partially update an embedded document using Spring Data MongoDB's MongoTemplate?
请有人告诉我如何更新嵌入文档中的记录吗? 这是我的文档结构:
{
"_id":"1000",
"event_name":"Some name",
"tracks":
[
{
"id" : "100"
"title" : "Test title",
},
{
"id" : "101",
"title" : "Test title 2",
}
]
}
我想更新ID为101.相关曲目的标题我的问题,因为 。
我可以使用以下代码来解决我的问题
MongoConverter converter = mongoTemplate.getConverter();
DBObject newTrackRec = (DBObject)converter.convertToMongoType(track);
Query query = Query.query(Criteria.where("_id").is(track.getEventId()).and("tracks._id").is(track.getId()));
Update update = new Update().set("tracks.$", newTrackRec);
mongoTemplate.updateFirst(query, update, Event.class);
您基本上可以遵循MongoDB参考文档的说明 ,并将其转换为Spring Data MongoDB查询和更新API:
import static org.springframework.data.mongodb.core.query.Query.*;
import static org.springframework.data.mongodb.core.query.Criteria.*;
Track track = …;
String title = …;
Query query = query(
where("id").is(track.getEventId()).
and("tracks.id").is(track.getId()));
Update update = new Update().set("tracks.$.title", title);
mongoTemplate.updateFirst(query, update, Event.class);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.