PyMongo учебник
Начало работы с PyMongo
Поиск…
замечания
В этом разделе представлен обзор того, что такое 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()
.