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

MongoDB配列内のアイテムを移動する方法は?

    要素を新しい位置に移動して、it2とit3の位置を入れ替える別の方法を次に示します...

    1. $ pull [Docs Here] > 。

      update({"name": "myDoc"}, {$pull: {"items" : "it3"}});
      
    2. $pushを使用して要素を新しい位置に挿入します。 [Docs Here]

      update({"name": "myDoc"}, { 
          $push: { 
              "items" : { $each : [ "it3" ], $position : 1 }
          }
      });
      

    いつ使用するか

    $ setを使用するというPouzorの答えは、より単純で、多くのユースケースでより優れたパフォーマンスを発揮する可能性があります。

    ただし、複数のユーザーが配列アイテムを同時に追加、削除、および並べ替える場合、この方法は、互いの変更を上書きしないことを意味します。

    書き込まれるデータが少ないため、場合によっては(大きな配列要素など)より効率的になることもあります。

    GOTCHA:リストのリスト

    並べ替えるリストが配列の配列である場合は、$all演算子を$pullで使用する必要があります[ドキュメントはこちら]

    この例を見てください:

    {
        name: "myDoc",
        items: [  
            [ "User", "dofij20r91dj93" ],   
            [ "User", "239vjvidjfsldf" ], 
            [ "User", "2309jvdsjdkk23" ]
        ]
    }
    

    リストのリストから最初のリストを削除するコードは次のとおりです。

    update({"name": "myDoc"}, {
        $pull: {
            "items" : {
                $all : [ "User", "dofij20r91dj93" ]  // the sub-list to $pull
            }
        }
    });
    

    オブジェクトのリスト

    かんたんだよ。次のオブジェクトのリストがあるとします。

    {
        name: "myDoc",
        items: [  
            { type: "User",  id: "dofij20r91dj93", name: "Dave" },   
            { type: "Group", id: "239vjvidjfsldf", name: "Accountants" }, 
            { type: "User",  id: "2309jvdsjdkk23", name: "Toni" }
        ]
    }
    

    次のように$pullできます:

    update({"name": "myDoc"}, {
        $pull: { 
            "items" : { type: "User", id: "dofij20r91dj93" } 
        }
    });
    


    1. マングースはデータを期限切れにしますが、データベースに保持します

    2. PUGのデータベースからのデータの解析

    3. Nodejsパフォーマンスの最適化

    4. 2022年のMongoDBチュートリアル– MongoDBとは何ですか?