我需要在现有的事件文档中插入一个新的轨道,下面是我的类结构
class Event
{
String _id;
List<Track> tracks;
}
class Track
{
String _id;
String title;
}
我现有的文档是
{
"_id":"1000",
"event_name":"Some Name"
}
插入后文档将如下所示
{
"_id":"1000",
"event_name":"Some name",
"tracks":
[
{
"title":"Test titile",
}
]
}
如何使用 mongoTemplate spring data mongodb 将该轨道插入到我现有的文档中?
首先,你必须注释Event
与 一起上课@Document
:
@Document(collection = "events")
public class Event
{
// rest of code
}
添加事件的代码应如下所示:
@Repository
public class EventsDao {
@Autowired
MongoOperations template;
public void addTrack(Track t) {
Event e = template.findOne
(new Query(Criteria.where("id").is("1000")), Event.class);
if (e != null) {
e.getTracks().add(t);
template.save(e);
}
}
}
Note: 你应该改变一下Event
的班级String _id;
to String id;
为了使该示例正常工作(或更改查询文字)。
Edit更新曲目也相当容易。假设您要更改第一首曲目的标题:
Event e = template.findOne(new Query(Criteria.where("_id").is("1000")), Event.class);
if (e != null) {
e.getTracks().get(0).setTitle("when i'm 64");
template.save(e);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)