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

MongodDBの配列からサブドキュメントを削除する

    あなたの例はうまく機能します:

    db.so.drop();
    db.so.insert(
    {
        "_id" : ObjectId("51ee899ec15d5aaff39d3353"),
        "first" : "first",
        "last" : "last",
        "email" : "email",
        "phone" : "555 555 5555",
        "userRole" : "su",
        "cards" : [
                {
                        "rfid_id" : ObjectId("51ee899ec15d5aaff39d3359")
                }
        ],
        "zones" : [
                {
                        "zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
                }
        ]
    });
    
    db.so.update({}, {$pull:{ "cards": {"rfid_id": ObjectId("51ee899ec15d5aaff39d3359")}}}, false, false)
    db.so.find().pretty();
    

    出力:

    {
        "_id" : ObjectId("51ee899ec15d5aaff39d3353"),
        "cards" : [ ],
        "email" : "email",
        "first" : "first",
        "last" : "last",
        "phone" : "555 555 5555",
        "userRole" : "su",
        "zones" : [
            {
                "zone_id" : ObjectId("51ee899ec15d5aaff39d3357")
            }
        ]
    }
    

    プルのObjectIDを少し変更する必要がありましたが、元々はドキュメントのシンプルバージョンとフルバージョンで異なる文字列を使用していたためです。




    1. mongodbでの編集は私にはわかりにくいようです

    2. 複数のファセット、Unwind、sortByCountを使用したAggregation Framework C#でのファセットの使用

    3. MongoDbで複数のレコードをアップサートする

    4. マングースの状態に基づいてモデルの明確なフィールドを見つける方法は?