sql >> データベース >  >> NoSQL >> MongoDB

Javaドライバーを使用してmongodbのドキュメントのフィールドを更新するにはどうすればよいですか?

    ドライバーが変更の最小のサブセットのみを更新するのに十分賢いのか、それとも単に全体を盲目的に更新しているだけなのかしら?

    いいえ、「通常の」更新方法を使用すると、オブジェクト全体がネットワーク経由で送信されます。データベースサーバー自体は、必要なインデックス(変更されていないインデックスではない)のみを更新するのに十分賢いのではないかと思います。可能であれば(つまり、オブジェクトはその場で更新でき、大きくなりすぎたために移動する必要はありませんでした)

    できることは、「アトミック更新修飾子」関数を使用することです。 Javaのドキュメントは少し軽いですが、ドライバーはJSONを送信するだけなので、Java以外のチュートリアルの内容は機能するはずです。例:

    shapes.update((DBObject)JSON.parse(    "{ 'foo' : 'bar'}"),  
        (DBObject) JSON.parse(          "{ '$set' : { 'foo': 'bat'}}")   );
    


    1. MongoDBrootユーザー

    2. ネストされたjavascriptオブジェクトをredisに保存する-NodeJS

    3. SQLサーバーからMongoDBに移行する理由と反対の理由

    4. MongoDBの'count()'は非常に遅いです。どのようにそれを改良/回避しますか?