Генерация пользовательского _id в protobuf Java, чтобы сохранить его в Mongodb - PullRequest
0 голосов
/ 22 октября 2019

Я создаю модели для сохранения в 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 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...