mongodb - 在 protobuf java 中生成自定义 _id 以将其保存在 Mongodb 中
问题描述
我正在使用 protobuf java 生成要保存在 MongoDB 中的模型。我想生成一个自定义 _id 字段。
谁能让我如何实现这一目标?
我尝试添加 _id 字段,但它没有按预期工作。
syntax = "proto3";
message User {
string first_name = 1;
string last_name = 2;
int64 dob = 3; // dob in the epoch format
int64 phone = 4;
string email = 5;
string type = 6;
string role = 7;
string user_id = 8;
bytes password = 9;
bool is_active = 10;
Meta meta = 11;
AddViaEnum addedVia = 12;
Address address = 13;
int64 _id = 14;
}
请在下面找到连接到 MongoDB 并插入文档的代码。
@Slf4j
public class CrudDaoImpl implements CrudDao {
private MongoClient mongoClient;
private MongoDatabase mongoDatabase;
@Inject
public CrudDaoImpl(MongoClient mongoClient) {
this.mongoClient = mongoClient;
this.mongoDatabase = this.mongoClient.getDatabase("test");
log.info("Connected to database");
}
@Override
public void saveDocument(String collectionName, String request) throws IOException {
MongoCollection<Document> collection = mongoDatabase.getCollection(collectionName);
collection.insertOne(Document.parse(request));
}
}
我正在使用 google guice 进行依赖注入。初始化mongo客户端如下
@Provides
public MongoClient get() {
return MongoClients.create("mongodb://localhost:27017");
}
使用上述设置通过 java 应用程序将文档插入 mongodb 后,mongo 将 ObjectID 创建为 _id。我想要自定义生成的 _id,但我不确定如何在 protobuf 中定义它。
解决方案
推荐阅读
- r - pivot_longer:values_ptypes:无法转换
到 - docker-desktop - 如何让 Mac 上的 Docker Desktop 指向 VM 映像的新位置?
- javascript - 用动态数据反应图像滑块,第一个图像出现在 clickEvent 之后
- android - 当我输入这个时,它给了我“以下函数都不能用提供的参数调用。”
- python - Tensorflow 卷积神经网络负维度大小
- swift - 我有一个复杂的 UIView 层次结构,我需要做一个非常简单的操作,在子视图上设置背景颜色。任何可能的解决方案?
- python - 如何从列表创建列表
- gdb - 为 GDB 命令脚本分配唯一 ID
- gridsearchcv - 尽管有这个错误,我如何在 dast_ml 中运行 GridSearchCV?
- android - 如何在单个活动中使用片段中的主要活动浮动操作按钮?