我需要生成ObjectId
在将我的实体保存到 MongoDB
之前。我简单地用 new org.bson.types.ObjectId()
生成它。它创建一个对象 _id
这是 _time
的四元数, _machine
, _inc
和_new
。 _id
的值本身看起来很正常MongoDB
_id
。尽管如此,在转换为JSON
之后并将其发送到数据库,它被保存为四个元素的数组。有什么办法让它看起来像 ObjectId
由 MongoDB
生成-"_id" : ObjectId("54edaa41ca190ebda00a2abd")
没有任何文本预处理?
最佳答案
这个简单的 Java 程序可以运行。
MongoClient mongoClient = new MongoClient();
ObjectId objectId = ObjectId.get();
DB test1 = mongoClient.getDB("test1");
BasicDBObject dbObject = new BasicDBObject("_id",objectId)
.append("key", "value");
test1.getCollection("test").insert(dbObject);
现在用Shell查询,ObjectId已正确保存。
> use test1
switched to db test1
> db.test.find()
{ "_id" : ObjectId("55520a15b8a0e51f45921946"), "key" : "value" }
关于java - 为 MongoDB 生成的 ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30191080/