在将实体保存到ObjectId
之前,我需要为我的实体生成MongoDB
。我只使用new org.bson.types.ObjectId()
生成它。它创建了一个对象_id
,它是_time
,_machine
,_inc
和_new
的四元数。 _id
本身的价值看起来像普通MongoDB
_id
。然而,在转换为JSON
并将其发送到数据库之后,它被保存为包含四个元素的数组。有没有办法让它看起来像ObjectId
生成的MongoDB
- "_id" : ObjectId("54edaa41ca190ebda00a2abd")
没有任何文字预处理?
答案 0 :(得分:1)
这个简单的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" }