2

私はMongoにこのデータを持っています:

{
    "_id": ObjectId("505fd43fdbed3dd93f0ae088"),
    "categoryName": "Cat 1",
    "services": [
        {
            "serviceName": "Svc 1",
            "input": [
-------------------------------------------------------------------------
                { "quantity": 10, "note": "quantity = 10" },
-------------------------------------------------------------------------
                { "quantity": 20, "note": "quantity = 20" }
            ]
        },
        {
            "serviceName": "Svc 2",
            "input": [
                { "quantity": 30, "note": "quantity = 30" },
                { "quantity": 40, "note": "quantity = 40" }
            ]
        }
    ]
}

{ "quantity" : 10, "note" : "quantity = 10" }次に、入力配列の要素をプルします。どうすればMongoでできますか?

4

1 に答える 1

1

これを行うには、$pull演算子とを使用します。位置演算子を使用して、ターゲットとする要素を識別します。update$services

db.collection.update(
    { "_id" : ObjectId("505fd43fdbed3dd93f0ae088"), 'services.serviceName': 'Svc 1' },
    { $pull: { 'services.$.input': { "quantity" : 10, "note" : "quantity = 10" } } }
);
于 2012-09-24T04:21:58.010 に答える