如何在MongoDB中保存半结构化数据

时间:2017-05-14 15:41:31

标签: mongodb spring-data spring-data-mongodb

我正试图弄清楚如何使用Spring Mongo将半结构化文档持久化到MongoDB。这是我想要完成的一个例子:

{
  "name": "Test",
  "admin": false,
  "unstructured_field_one": "Some arbitrary data"
}

我知道如何使用完全非结构化数据作为父文档中的字段来执行此操作,我可以使用类似

的内容
//...
private Object someRandomObject;

但是我怎样才能完成一个半结构化文档(在父级别),在我的例子中,nameadmin作为必填字段,以及随之而来的其他内容请求是否自动添加?

1 个答案:

答案 0 :(得分:1)

你可以在没有任何pojo的情况下完成,只需使用Json Parser(Jackson)和MongoTemplate。由于MongoTemplate可以保存任何DbObject,因此需要将json转换为DBObject  像这样的东西会做

 ObjectMapper mapper = new ObjectMapper();
 TypeReference<Map<String,Object>> typeRef
        = new TypeReference<Map<String,Object>>() {};
 Map<String,Object> map = mapper.readValue(json, typeRef);
 DBObject dbObject = new BasicDBObject(map);

 mongoTemplate.getCollection("blahblah").save(dbObject);
相关问题