在Java Mongo DB驱动程序版本3中,与版本2相比,API已经发生了变化.因此像这样的代码不再编译:
BasicDBObject personObj = new BasicDBObject();
collection.insert(personObj)
Run Code Online (Sandbox Code Playgroud)
Collection插件仅适用于Mongo Document.
处理旧代码我需要提出问题:
将BasicDBObject转换为Document的最佳方法是什么?
小智 9
我们可以通过以下方式转换BasicDBObject
为Document
public static Document getDocument(DBObject doc)
{
if(doc == null) return null;
return new Document(doc.toMap());
}
Run Code Online (Sandbox Code Playgroud)
作为Document本身就是一个实现Map<String,Object>.
并且BasicDBObject可以DBObject像BasicDBObject实施一样被捕获DBObject.
@ Black_Rider也适合你
小智 8
我认为最简单的方法就是更改代码以使用Document而不是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"));
Run Code Online (Sandbox Code Playgroud)
至
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"));
Run Code Online (Sandbox Code Playgroud)
然后插入集合中
coll.insertOne(doc);
Run Code Online (Sandbox Code Playgroud)
您需要更改其他代码才能使用MongoDB 3+
MongoDatabase与DB MongoCollection对比DBCollection
该文档与 BasicDBObject 非常相似。我不太确定您所说的将 BasicDBObjects 转换为文档的方法是什么,但 Document 对象提供了一些非常有用的方法。
如果您输入 JSON 字符串,Document.parse(string) 将返回一个 Document。
Document.append("key", Value) 将添加到文档的字段中。
至于您帖子中的代码,应该使用版本 3 进行编译:
Document personObj = new Document();
collection.insertOne(personObj)
Run Code Online (Sandbox Code Playgroud)
看
和
| 归档时间: |
|
| 查看次数: |
17609 次 |
| 最近记录: |