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带有 an 的运算符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 回答