2017-07-04 7 views
-1

MongoコレクションのすべてのドキュメントのIDをspring mongoで変更する方法はありますか?スプリングでmongoドキュメントのIDを変更する

多くの方法でこれをしようが、私のようなエラーメッセージを得た:

the (immutable) field '_id' was found to have been altered to _id 

または

Write errors: [BulkWriteError{index=0, code=16837, message='The _id field cannot be changed from {_id: "xyz"} to {_id: "zxy"}. 

これを行う方法はありますか?

答えて

1

いいえ、あなたは_idフィールドを更新することはできません。しかし、常に新しい_idを既存のドキュメントに設定し、古い_idを削除することができます。

+0

私がBasicDBObjectのreplaceOneメソッドを使ってidを置き換えようとすると、2番目のエラーが出ます。それとも、あなたが新しい_idを設定し、古いものを削除することが意味するものではありませんか? – neptune

+0

私は今mongoドライバにアクセスしていませんが、これは私が何を示唆していたものです(テストされていません): BasicDBObject = new BasicDBObject( "$ set"、new BasicDBObject( "_ id"、1234)); someCollection.update(someSearchQuery、set); その間に古い_idを取得し、新しいIDを設定した後に削除してください。 – sharath

+0

これを確認してください:https://stackoverflow.com/questions/23130161/how-to-update-the-id-field-in-a-mongodb-document – sharath

関連する問題