有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将JSON解析为MONGODB文档

我对JAVAMONGODB都是新手,一直在学习尝试和理解这些技术是否能满足我对产品的要求

我目前陷入了无法将JAVA中的文档(记录)插入MONGODB集合的困境

我正在使用新的MONGODB{}

迄今为止的代码

MongoCollection<Document> coll = db.getCollection("Collection");
String json = "{'class':'Class10', 'student':{'name':'Alpha', 'sex':'Female'}, {'name':'Bravo', 'sex':'Male'}}";

我找到了将其转换为DBObject类型的代码

DBObject dbObject = (DBObject)JSON.parse(json);

但是我猜MONGODB的新版本没有insert方法,而是有insertOne method

coll.insertOne()要求输入采用文档格式,但不接受DBObject格式

coll.insertOne((Document) dbObject);

给出了错误

com.mongodb.BasicDBObject cannot be cast to org.bson.Document

有人能帮助我正确的类型铸造,并给我一个链接,我可以找到和学习相同的

问候


共 (3) 个答案

  1. # 1 楼答案

    我使用GoogleGSON将pojo转换为json,这是一项完美的工作

    private final MongoCollection<Document> collection;
    
    //my save
        String json = gson.toJson(data);//data is User DTO, just pojo!
        BasicDBObject document = (BasicDBObject) JSON.parse(json);
        collection.insertOne(new Document(document));
    

    Java mongodb驱动程序版本为3.4.2

  2. # 3 楼答案

    • 问题是您使用的是旧版本 与版本3.0不兼容的版本(BasicDBObject)

    • 但是2.0用户可以使用BasicDBObject。超负荷的 getCollection方法允许客户端指定不同的类 用于表示BSON文档

    以下代码必须适用于您

    MongoCollection<BasicDBObject> coll = db.getCollection("Collection", BasicDBObject.class);
    
    coll.insertOne(dbObject);