将JSON解析为MONGODB文档

Pre*_*rem 6 java mongodb

我是新手JAVA,MONGODB并且一直在学习如何尝试理解这些技术是否符合我对产品的要求.

我目前陷入了无法将文档(记录)JAVA插入我的MONGODB集合的程度.

我正在使用新的MONGODB version 3.0.

代码到目前为止

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

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

DBObject dbObject = (DBObject)JSON.parse(json);
Run Code Online (Sandbox Code Playgroud)

但我想新版本MONGODB没有插入方法,而是有insertOne method.

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

coll.insertOne((Document) dbObject);
Run Code Online (Sandbox Code Playgroud)

给出了错误

com.mongodb.BasicDBObject cannot be cast to org.bson.Document
Run Code Online (Sandbox Code Playgroud)

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

问候.

jye*_*min 9

使用在Document类中定义的静态解析(String json)方法.

  • 但是在解析JSON字符串时,抛出的错误是org.bson.json.JsonParseException:无效的JSON编号 (2认同)

Rut*_*wik 7

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

  • 但是2.0用户有一种方法可以使用BasicDBObject.An的getCollection方法重载允许客户端指定一个不同的类来表示BSON文档.

以下代码必须适合您.

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

coll.insertOne(dbObject);
Run Code Online (Sandbox Code Playgroud)