Mongodb
と通信するために、春のデータmongodbを使用しています。Spring boot
からです。Mongodbが存在する場合は、
文書構造:インデックスで
{
"_id" : ObjectId("5a324f8bc23fa147699ee0fb"),
"_class" : "com.mongodb.User",
"name" : "Prakash",
"userId" : NumberLong(1000),
"organisation" : "Inbytes",
"createdOn" : ISODate("2017-12-14T10:16:43.173Z")
}
:userIdを(ユニーク)
私はすでに、 存在"userId" : NumberLong(1000)
すなわちを有する任意の文書を挿入した場合、私はこのエラー取得:
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: db.user index: userId dup key: { : 1000 }"
}
})
私は毎日100万レコードを更新する必要があるユースケースがあります。
find if they exist, if exist, update or override, else insert
:彼らはである...などの名前、ポイント、のように、このユースケースを実現する
一つの方法を自分のフィールドを変更することがあります。
しかし、この方法は膨大なレコードに対して高いレイテンシを持っています。
私のユースケースを実現するためのより良い方法がありますか?ネイティブのMongoDB-javaリポジトリとspring mongo-DBリポジトリの両方が私のために機能します。あなたがIndexed
あなたMongo
collection
をしましたので、
プライマリインデックスを持つドキュメントを挿入すると、それが存在する場合、既存のドキュメントが上書きされます。ユニークなインデックスの場合にこの動作を達成できますか?つまり、ユニークなインデックスを持つドキュメントが存在する場合は、ドキュメントの他のフィールド(thana_idおよびユニークインデックスを持つフィールド)を更新/オーバーライドする必要があります。 –