PyMon go: Обновление позиционного оператора с фильтром по массиву выдает ошибку - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь запустить код python, чтобы обновить коллекцию массивами. Приведенное ниже утверждение дает ошибку с pymon go. Пожалуйста, руководство

db.students.update({}, {'$set': {"grades.$[element]": 100}}, {'multi': true, 'arrayFilters': [{"element": { '$gte': 100}}]} )

tried : multi=True tried : multi:True

Я получаю следующую ошибку: common.validate_boolean ("upsert", upsert) Файл "F: \ Program Files \ Python3 .7 \ lib \ site-packages \ pymongo \" common.py ", строка 159, в validate_boolean поднять TypeError ("% s должно быть True или False "% (option,))

TypeError: upsert must be True or False

1 Ответ

0 голосов
/ 08 апреля 2020
Синтаксис

Pymon go немного отличается от синтаксиса Mon go, вы должны написать его так:

db.students.update({}, {'$set': {"grades.$[element]": 100}}, multi=True, array_filters=[{"element": {'$gte': 100}}])

Также update устарело, и в вашем случае вы должны использовать update_many вместо.

db.students.update_many({}, {'$set': {"grades.$[element]": 100}}, array_filters=[{"element": {'$gte': 100}}])
...