我在mongoDB
中名为event
的集合中有如下文档
{
"name": "pick",
"message": {
"word": "seven",
"sequenceNumber": 34
}
}
在我开发Spring Boot应用程序之前存在。 现在我有一个java对象Event.java来访问上面的集合。
public class Event{
private String name;
private JSONObject messgae;
// getters setters costructors
}
在文档中,message
可以是任何json。因此,为message
定义一个类没有任何意义。
我尝试过使用mongoOperations
,mongoTemplate
和mongoRepository
,但我无法访问该文档并更改该值并再次存储。我面临的问题是,
JSONObject
用于留言,因为mongoOperations
没有支持String
用于message
,因为当我再次保存对象时,它会被序列化为"message":"{\"word ...
有没有办法可以通过spring boot应用程序访问,修改和存储数据?
答案 0 :(得分:1)
您可以使用JSONObject
添加mongoOperations
中的邮件,如下所示。
JSONObject jsonObj= new JSONObject();
jsonObj.put("word", "seven");
jsonObj.put("sequenceNumber", new Integer(34));
//save
Event eventDocument = new Event("pick",jsonObj);
mongoOperations.save(eventDocument);
//find
Query query = new Query(Criteria.where("name").is("pick"));
Event object = (Event) mongoOperations.findOne(query, Event.class);
System.out.println(object.getName());
System.out.println(object.getMessage());