Поиск…


замечания

В этом разделе представлен обзор того, что такое pymongo, и почему разработчик может захотеть его использовать.

Следует также упомянуть о любых крупных предметах в pymongo и ссылаться на связанные темы. Поскольку документация для pymongo является новой, вам может потребоваться создать начальные версии этих связанных тем.

Установка или настройка

Подробные инструкции по настройке или установке pymongo.

  • Установка с помощью Pip

    • Чтобы установить pymongo в первый раз:

      pip install pymongo

    • Установка конкретной версии pymongo:

      Где XXX - это версия, которая будет установлена

      pip install pymongo==XXX

    • Обновление существующего pymongo:

      pip install --upgrade pymongo

  • Установка с помощью easy_install

    • Чтобы установить pymongo в первый раз:

      python -m easy_install pymongo

    • Обновление существующего pymongo:

      python -m easy_install -U pymongo

Привет, мир

PyMongo - это родной драйвер Python для MongoDB.

Установка PyMongo

pip install pymongo

Создать соединение

Используйте MongoClient для создания соединения. MongoClient по умолчанию использует экземпляр MongoDB, запущенный на localhost:27017 если не указан.

from pymongo import MongoClient
client = MongoClient() 

Доступ к объектам базы данных

Класс базы данных PyMongo представляет собой конструкцию базы данных в MongoDB. Базы данных содержат группы логически связанных коллекций.

db = client.mydb

Объекты коллекции доступа

Класс Collection PyMongo представляет собой сборник в MongoDB. Коллекции содержат группы связанных документов.

col = db.mycollection

MongoDB создает новые базы данных и коллекции неявно при первом использовании.

Основная операция CRUD

MongoDB хранит записи данных как документы BSON . BSON является двоичным представлением JSON.

$ python
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> col = client.mydb.test

Создайте

Вставьте один документ insert_one(document)

>>> result = col.insert_one({'x':1})
>>> result.inserted_id
ObjectId('583c16b9dc32d44b6e93cd9b')

Вставить несколько документов insert_many(documents)

>>> result = col.insert_many([{'x': 2}, {'x': 3}])
>>> result.inserted_ids
[ObjectId('583c17e7dc32d44b6e93cd9c'), ObjectId('583c17e7dc32d44b6e93cd9d')]

Замените один документ, соответствующий фильтру replace_one(filter, replacement, upsert=False) . (чтобы вставить новый документ, если соответствующий документ не существует, используйте upsert=True )

>>> result = col.replace_one({'x': 1}, {'y': 1})
>>> result.matched_count
1
>>> result.modified_count
1

Обновить

Обновите один документ, соответствующий фильтру update_one(filter, update, upsert=False)

>>> result = col.update_one({'x': 1}, {'x': 3})

Обновите один или несколько документов, соответствующих фильтру update_many(filter, update, upsert=False)

>>> result = col.update_many({'x': 1}, {'x': 3})

Читать

Запросить find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False) базы данных find(filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False) . Аргумент фильтра - это прототип документа, который должен соответствовать всем результатам.

>>> result = col.find({'x': 1})

Получить один документ из базы данных find_one(filter=None)

>>> result = col.find_one()

Запрос с проецированием

query={'x':1}
projection={'_id':0, 'x':1} # show x but not show _id
result=col.find(query,projection)

удалять

Удалите один документ, соответствующий фильтру delete_one(filter)

>>> result = col.delete_one({'x': 1})
>>> result.deleted_count
1

Удалите один или несколько документов, соответствующих фильтру delete_many(filter)

>>> result = col.delete_many({'x': 1})
>>> result.deleted_count
3

PyMongo также предоставляет функции find_one_and_delete() , find_one_and_update() и find_one_and_replace() .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow