MongoDB で Spring Data を使用しています。オブジェクトの挿入や更新などを行うことは可能ですか? MongoTemplate および MongoOperation クラスを使用しています。どうもありがとう!
質問する
9769 次
3 に答える
1
MongoDBでは、ドキュメントを挿入、更新、アップサートできます。
MongoDB ドキュメントから:
「アップサートにより、更新または挿入操作を実行する前に、レコードの存在を確認するために別のデータベース呼び出しを実行する必要がなくなります。」
簡単に言えば、これは「このドキュメントがまだ存在しない場合にのみ、作成してください」と考えることができます。
ここの例のように、upsert を true に設定しない限り、upsert は発生しないことに注意してください。
db.collection.update( <query>,
<update>,
{ upsert: true } )
于 2013-02-20T14:40:15.810 に答える
0
また、MySQL/Hibernate/JPA から来た MongoDB も初めてです。Mongoでは、「更新」と「挿入」のようなものはないと私は理解しています。id フィールドがすでに DB にあるものと同じである場合は、更新されます。そうでない場合は、挿入です。
私のコードでは、重複を解決する方法は、自分の ID フィールドに @Id を付けることです。これは、デフォルトで生成された id フィールドの代わりに特定のフィールドを使用する必要があることを Spring Data/MongoDB に伝えます。したがって、同じ ID を使用してエンティティを保存しようとすると、Mongo は単純にそれを上書きします。
于 2013-01-18T20:17:44.300 に答える