如何使用Java Mongo DB驱动程序版本3将BasicDBObject转换为Mongo文档?
在Java Mongo DB驱动程序版本3中,与版本2相比,API已更改。所以像这样的代码不再编译了:
BasicDBObject personObj = new BasicDBObject();
collection.insert(personObj)
集合插入仅适用于 Mongo 文档。
处理旧代码,我需要问一个问题:
将 BasicDBObject 转换为文档的最佳方法是什么?
在Java Mongo DB驱动程序版本3中,与版本2相比,API已更改。所以像这样的代码不再编译了:
BasicDBObject personObj = new BasicDBObject();
collection.insert(personObj)
集合插入仅适用于 Mongo 文档。
处理旧代码,我需要问一个问题:
将 BasicDBObject 转换为文档的最佳方法是什么?
我们可以通过以下方式将BasicDBObject转换为文档
public static Document getDocument(DBObject doc)
{
if(doc == null) return null;
return new Document(doc.toMap());
}
因为文档本身是Map<String,Object>的实现。
并且可以像 的实现一样被捕获。BasicDBObjectDBObjectBasicDBObjectDBObject
@Black_Rider也为你
我认为最简单的方法是将代码更改为使用文档而不是BasicDBObject。
所以改变
BasicDBObject doc = new BasicDBObject("name", "john")
.append("age", 35)
.append("kids", kids)
.append("info", new BasicDBObject("email", "john@mail.com")
.append("phone", "876-134-667"));
自
import org.bson.Document;
...
Document doc = new Document("name", "john")
.append("age", 35)
.append("kids", kids)
.append("info", new BasicDBObject("email", "john@mail.com")
.append("phone", "876-134-667"));
,然后插入到集合中
coll.insertOne(doc);
您需要更改其他代码位才能与MongoDB 3 +一起使用
MongoDatabase vs.DB MongoCollection vs DBCollection