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

MongoDB-セットへの追加とインクリメント

    リストからハッシュ(オブジェクト)に切り替える場合は、アトミックにこれを行うことができます。

    ドキュメント から :"$inc ...フィールドがオブジェクトに存在する場合は、フィールドを数値でインクリメントします。それ以外の場合は、フィールドを数値に設定します。 "

    { $inc : { field : value } }
    

    したがって、コンテナとオブジェクトをリファクタリングできる場合:

    words: [
      {
        'word': 'foo',
        'count': 1
      },
      ...
    ]
    

    宛先:

    words: {
      'foo': 1,
      'other_word: 2,
      ...
    }
    

    update操作を使用できます と:

    { $inc: { 'words.foo': 1 } }
    

    { 'foo': 1 }を作成します 'foo'が存在しない場合は、fooをインクリメントします。

    例:

    $ db.bar.insert({ id: 1, words: {} });
    $ db.bar.find({ id: 1 })
    [ 
      {   ...,   "words" : {     },   "id" : 1   }
    ]
    $ db.bar.update({ id: 1 }, { $inc: { 'words.foo': 1 } });
    $ db.bar.find({ id: 1 })
    [ 
      {   ...,   "id" : 1,   "words" : {   "foo" : 1   }   }
    ]
    $ db.bar.update({ id: 1 }, { $inc: { 'words.foo': 1 } });
    $ db.bar.find({ id: 1 })
    [ 
      {   ...,   "id" : 1,   "words" : {   "foo" : 2   }   }
    ]
    


    1. Redis RDBとAOFを無効にする方法は?

    2. pymongo-メッセージの長さがサーバーの最大メッセージサイズよりも大きい

    3. C#ドライバーを介してmongodbシェルスクリプトを実行します

    4. MongoDBの条件付き$lookup?