Как с помощью pymongo обновить документ в базе данных?

Каким образом можно обновить данные в коллекции с использованием pymongo, чтобы изменить product_id для Ozon на 4 и sku для Yandex на 5? Можно ли это сделать за один запрос?
  • 13 августа 2024 г. 12:53
Ответы на вопрос 1
Для обновления документа в базе данных с помощью pymongo необходимо использовать метод update_one или update_many, в зависимости от того, сколько документов вы планируете обновить.

Пример обновления данных в коллекции с использованием pymongo:

```python
import pymongo

# устанавливаем соединение с базой данных
client = pymongo.MongoClient("mongodb://localhost:27017")
db = client["mydatabase"]
collection = db["mycollection"]

# обновляем данные в коллекции
update_query = {"$set": {"product_id": 4}}
collection.update_one({"company": "Ozon"}, update_query)

update_query = {"$set": {"sku": 5}}
collection.update_one({"company": "Yandex"}, update_query)
```

Да, можно обновить данные для двух разных документов (Ozon и Yandex) за один запрос, указывая оба условия в одной команде update_one:

```python
update_query = {"$set": {"product_id": 4, "sku": 5}}
collection.update_one({"$or": [{"company": "Ozon"}, {"company": "Yandex"}]}, update_query)
``` 

Это обновит поле product_id для документа с company="Ozon" на 4 и поле sku для документа с company="Yandex" на 5 за один запрос.
Похожие вопросы