java - 为 MongoDB 生成的 ObjectId

标签 java mongodb

我需要生成ObjectId在将我的实体保存到 MongoDB 之前。我简单地用 new org.bson.types.ObjectId() 生成它。它创建一个对象 _id这是 _time 的四元数, _machine , _inc_new_id的值本身看起来很正常MongoDB _id 。尽管如此,在转换为JSON之后并将其发送到数据库,它被保存为四个元素的数组。有什么办法让它看起来像 ObjectIdMongoDB 生成-"_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/

相关文章:

java - 数据扇出 Java 库

java - JVM 可以内联 native 方法吗?

javascript - mongodb:如何为每个数组元素创建_id?

django - 使用 MongoEngine 创建用户注册页面

c# - 无法在 MongoDb 集合查询中将 ObjectId 反序列化为 String

c# - 使用 mongo C# 驱动程序,如何序列化自定义对象数组以存储它?

node.js - 使用 Nodejs 和 Imagemagick 调整图像大小

java剪贴板错误(bug)?

java - Android:Outputstream.write - 问题

java - 如何使用 spring-boot 扫描具体的 JPA 实体而不扫描同一包下的所有实体?