使用部分定义的模式映射文档

时间:2016-04-04 15:00:24

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

我正在使用Spring& amp;编写演示应用程序MongoDB作为数据库。

我的主域名类似于:

@Document
public class Person {

    @Id
    private String id;

    //Some other fields
    private DBObject additionalData;

}

关键是additionalData是一个没有指定架构的子文档,它是一种用户定义的JSON。但是当我解析这个json(使用(DBObject)JSON.parse(value)表达式)时,它在MongoDB中存储为一个字符串,我需要它作为一个嵌套的文档结构。

搜索了几个小时,发现没有解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不确定投射

结果的预期结果
JSON.parse(value)

DBObject,这是一个接口,而不是一个类。 尝试将结果转换为DBObject BasicDBObject(或BasicDBList)或Map< String,Object>的实现。正如评论中提到的那样(它也是一个界面,但确实有效)。

如果您正在使用Spring Data Rest,则可能不需要手动反序列化",Spring会为您完成此操作。查看this answer以获取有关操作的基本示例。 没有指定模式的数据可能不是最好的想法(mongodb会在数据库级别保存你,但你应该在应用程序级别这样做),但我在生产中使用类似的技巧,你可以以某种方式使它工作