Я создаю модели для сохранения в MongoDB, используя protobuf Java. Я хочу создать собственное поле _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");
}
После вставки документа в mongodb через приложение java с вышеуказанной настройкой mongo создает ObjectID в качестве _id. Я хотел сгенерированный _id _id, и я не уверен, как определить это в protobuf. * 1014 *