【发布时间】:2015-05-28 05:53:30
【问题描述】:
我是 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'}}";
我找到了将其转换为 DBObject 类型的代码。
DBObject dbObject = (DBObject)JSON.parse(json);
但我猜MONGODB 的新版本没有插入方法,而是有insertOne method。
coll.insertOne() 要求输入为 Document 格式,不接受 DBObject 格式。
coll.insertOne((Document) dbObject);
给出错误
com.mongodb.BasicDBObject cannot be cast to org.bson.Document
有人可以帮助我进行正确的类型转换并给我一个链接,在那里我可以找到并学习相同的内容吗?
问候。
【问题讨论】:
-
我认为这个
coll.insertOne((Document) dbObject);有问题,你可以在不强制转换Document的情况下检查这个coll.insertOne(dbObject);,然后插入。 -
如果你使用 DBCollection 而不是 MongoCollection,你可以使用 insert(DBObject) 就可以了。
-
嗨 Yogesh,我尝试了你提到的方法,但是 Eclipse 上出现了一个明确的错误,表明存在类型转换错误。根据您的建议进行了更改,我得到的错误是“MongoCollection
类型中的方法 insertOne(Document) 不适用于参数 (DBObject)” -
嗨兰吉特,是的。我发现这个链接可以将 JSON 数据转换为 DBObject。但是,成功转换后,我无法将其插入集合中。 Mongo 2.10 版有插入方法,但在 Mongo 3.0 版中没有。在 3.0 中有一个 insertOne 方法,它只接受 Document 格式。