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

MongoDBのインデックスによって、配列内のサブドキュメントのフィールドをアップサートします

    updateを使用したい 次のようにコレクションにコマンドを実行します(例):

    db.collection.update(
        { "my_array.title" : "title_one" },
        { $inc : { "my_array.$.click_number" : 1 } }
    );
    

    何が起こったのですか?

    updateの最初のパラメータについて queryを定義します 更新するドキュメントと一致させます。 titleという名前のプロパティを検索します my_arrayという配列内 。 bodyと照合できます またはemail もちろん、ドット表記を次のように変更します:"my_array.email"

    2番目のパラメーターは、更新、適用する変更を定義します。 $incがあります このステートメントで使用するフィールドをインクリメントする演算子。 query 配列要素が一致するドキュメントを選択します。 $を使用して、この一致した配列アイテムにアクセスできます 表記。 "my_array.$" titleを持つ一致した配列要素を選択します 、email およびbody 。存在しないフィールドに値を与えようとすると、MongoDBがそれを行います。フィールドが存在しない場合は、$inc フィールドを指定された量に設定します。 $inc オペレーターは正と負の増分量を受け入れます。

    updateコマンドの詳細をご覧ください。

    別の例:

    db.collection.update(
        { _id : "john", "my_array.email" : "email" },
        { $inc : { "my_array.$.click_number" : 1 } }
    );
    



    1. 参照がドキュメントに入力されないのはなぜですか?

    2. Mongo DBの配列内に存在するすべての一致する要素を取得するにはどうすればよいですか?

    3. MeteorMongofindOneはメソッドで未定義を返します

    4. $notを使用したMongoDB地理空間クエリ