编程语言
首页 > 编程语言> > java – 使用部分定义的模式映射文档

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

作者:互联网

我正在使用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中存储为一个字符串,我需要它是一个嵌套的文档结构.

搜索了几个小时,没有找到解决方案.有任何想法吗?

解决方法:

我不太确定投射结果的预期结果

JSON.parse(value)

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

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

标签:java,mongodb,spring-data,spring-data-mongodb
来源: https://codeday.me/bug/20191001/1840139.html