モンゴでJSONを挿入

SteeleDev:

私はGsonライブラリを使用して作成していJSONオブジェクトを持っています。私は整数のIDとしてUUIDとint64型タイプを持つJavaモンゴドライバv3.8.1を使用してMongoDBの中で、このオブジェクトを挿入します。しかし、これはそれぞれの文字列とのInt32型として挿入されているようです。

JsonObject folderObject = new JsonObject();
folderObject.addProperty("id", UUID.randomUUID().toString());
folderObject.addProperty("cid", document.getCid());

私はBSONにこれを変換しています

org.bson.Document doc= org.bson.Document.parse(folderObject .toString());

そして使用してMongoDBの中に挿入

  mongoCollection.insertOne(doc);

私document.getCidは()タイプのロングのですが、それでもINT32として挿入されて、私はfolderObjectに文字列から離れて何かを渡すことができません。

SteeleDev:

MongoのPOJOコーデックを使用してこれを解決しました。

CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(),
                fromProviders(PojoCodecProvider.builder().automatic(true).build()));

    CodecRegistry codecRegistry =
                fromRegistries(CodecRegistries.fromCodecs(new UuidCodec(UuidRepresentation.STANDARD)),
                        MongoClientSettings.getDefaultCodecRegistry(),pojoCodecRegistry
                );

その後、あなたは特定のコーデックを使用してクライアントを起動したり、コーデックレジストリやコーデックのコレクションでデータベースを起動するかを選択することができます。

リファレンス- https://mongodb.github.io/mongo-java-driver/3.8/driver/getting-started/quick-start-pojo/

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=210387&siteId=1