Обновите много на всех документах в mongodb - PullRequest
0 голосов
/ 31 марта 2020

Итак, у меня есть коллекция "услуг". У которого есть поле json, подобное этому

"price" : {
    "_id" : ObjectId("5e82d0d1f44d762a248aab38"),
    "junior" : {
        "_id" : ObjectId("5e82d0d1f44d762a248aab39")
    },
    "senior" : {
        "_id" : ObjectId("5e82d0d1f44d762a248aab3a")
    }
},

Но мне все равно, что там внутри значений цены. Мне нужно обновить его везде внутри моей коллекции со следующим ценовым ключом. Как мне это сделать? Я Serched для updateMany, но это требует поля значения. как db.test.updateMany({foo: "bar"}, {$set: {test: "success!"}}). здесь у меня нет "бара". Я просто хочу сделать это везде внутри моей коллекции с помощью следующего поля.

"price" : {
        "_id" : "5e2e77ddac85aa32f8cd840b",
        "junior" : {
            "atSpa" : 895.24,
            "prePay" : 675.52,
            "offer" : {
                "atSpa" : 204.08,
                "prePay" : 764.9
            }
        },
        "senior" : {
            "atSpa" : 1895.24,
            "prePay" : 1675.52,
            "offer" : {
                "atSpa" : 1204.08,
                "prePay" : 1764.9
            }
        },
        "offerConditions" : {
            "noOfTimes" : 4,
            "dueDate" : "2020-03-27T05:40:36.652Z"
        }
    }, 

1 Ответ

2 голосов
/ 31 марта 2020

updateMany принимает три аргумента: A filter, update document и необязательный объект options. Оставив фильтр пустым:

db.test.updateMany({}, {$set: {test: "success!"}})

выберет все для обновления.

...