кодесурса
«MongoDB

MongoDb: драйвер Python

script1adsense2code
script1adsense3code

Вступление

Дистрибутив PyMongo содержит инструменты для взаимодействия с базой данных MongoDB из Python. В этом руководстве рассматривается установка PyMongo в различных операционных системах, подключение и основные операции с базой данных, такие как вставка, обновление, удаление и поиск с помощью PyMongo.

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

pip - это инструмент для установки и управления пакетами Python. Используйте pip для установки PyMongo на платформах, отличных от Windows.

$ pip install pymongo

Чтобы получить конкретную версию pymongo:

$ pip install pymongo==2.6.3

Чтобы обновить с помощью pip:

$ pip install --upgrade pymongo

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

Setuptools обеспечивает загрузку, сборку, установку, обновление и удаление пакетов Python. Чтобы использовать easy_install из setuptools, выполните:

$ easy_install pymongo

Для обновления сделайте:

$ easy_install -U pymongo

Установщики MS Windows

Дистрибутив PyMongo в Windows поддерживается и тестируется на Python 2.x (где x> = 4) и Python 3.x (где x> = 1). Версии PyMongo <= 1.3 также поддерживают Python 2.3, но это больше не поддерживается.

Перед установкой драйвера в Windows:

  • Для завершения установки могут потребоваться права root или администратора.
  • Перед установкой дистрибутива Python в вашей системе включите python.exe в параметре Windows% PATH% (переменная среды пути) или добавьте его вручную, если он не включен.

Установка драйвера для Windows:
Выберите и загрузите установочные пакеты MSI отсюда согласно вашему требованию.

«PyMongo

Работа с MongoDB и PyMongo

Мы предполагаем, что экземпляр MongoDB работает на хосте и порту по умолчанию. Перед началом убедитесь, что у вас установлен дистрибутив PyMongo. В оболочке Python следующее должно выполняться без исключения:

>>> import pymongo
>>>

Установление соединения с MongoClient

Чтобы создать MongoClient для работающего экземпляра mongod, выполните следующий код:

>>> from pymongo import MongoClient
>>> client = MongoClient()

Приведенный выше код будет подключаться к хосту и порту по умолчанию.

Вы можете указать хост и порт явно, как показано ниже:

>>> from pymongo import MongoClient
>>> client = MongoClient('localhost', 27017)

Вы также можете использовать формат URI MongoDB:

>>> from pymongo import MongoClient
>>> client = MongoClient('mongodb://localhost:27017/')

Получение базы данных

Один экземпляр MongoDB может поддерживать несколько независимых баз данных. Вот команда:

>>> db = client.testdb

или (используя доступ в стиле словаря):

>>> db = client['testdb']

Вставить документ

Чтобы вставить документ в коллекцию, вы можете использовать метод insert (). Когда документ вставлен, автоматически добавляется специальный ключ «_id», если в документе еще нет ключа «_id». Значение «_id» должно быть уникальным для всей коллекции. insert () возвращает значение "_id" для вставленного документа.


>>> import pymongo
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> db = client.testdb
>>> student1 = {"name": "Arun",
                "classid": 'V',
		"rollno": 1}
>>> students = db.students
>>> students_id = students.insert(student1)
>>> students_id
ObjectId('548c02cd838d1f11b0d17d52')
>>> 

Добавьте еще две записи:

>>> student2 = {"name": "David",
	        "classid": 'V',
			"rollno": 2}
>>> student3 = {"name": "Shekhar",
	        "classid": 'V',
			"rollno": 3}
>>> students = db.students
>>> students_id = students.insert(student2)
>>> students_id = students.insert(student3)

Найти документ

Метод find_one () возвращает один документ, соответствующий запросу (или ни один, если совпадений нет). Это полезно, когда вы знаете, что есть только один соответствующий документ. Здесь метод find_one () используется для получения первого документа из коллекции студентов:

>>> import pymongo
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> db = client.testdb
>>> students = db.students
>>> students.find_one()
{'classid': 'V', '_id': ObjectId('548c02cd838d1f11b0d17d52'), 'name': 'Arun', 'rollno': 1}
>>>

Возвращенный документ содержит «_id», который был автоматически добавлен при вставке.

Найти конкретный документ:

Метод find_one () также поддерживает запросы к определенным элементам, которым должен соответствовать полученный документ. Пусть обыскивают ученика "Шехар".

>>> import pymongo
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> db = client.testdb
>>> students = db.students
>>> students.find_one({"name": "Shekhar"})
{'classid': 'V', '_id': ObjectId('548c058a838d1f11b0d17d54'), 'name': 'Shekhar', 'rollno': 3}
>>>

Вы также можете найти студента по его _id, который в нашем примере является ObjectId.

Запрос нескольких документов

Чтобы получить более одного документа в результате запроса, мы используем метод find (). find () возвращает экземпляр курсора, который позволяет нам перебирать все соответствующие документы. Например, мы можем перебрать каждый документ в коллекции студентов:

>>> import pymongo
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> db = client.testdb
>>> students = db.students	
>>> for student in students.find():
			   student
			  {'classid': 'V', '_id': ObjectId('548c02cd838d1f11b0d17d52'), 'name': 'Arun', 'rollno': 1}
			  {'classid': 'V', '_id': ObjectId('548c0584838d1f11b0d17d53'), 'name': 'David', 'rollno': 2}
			  {'classid': 'V', '_id': ObjectId('548c058a838d1f11b0d17d54'), 'name': 'Shekhar', 'rollno': 3}
>>>

Запросы диапазона

Вы можете использовать запрос, чтобы получить набор документов из нашей коллекции. Например, если вы хотите получить все документы, где «rollno»> = 2, код будет:

>>> import pymongo
>>> from pymongo import MongoClient
>>> client = MongoClient()
>>> db = client.testdb
>>> students = db.students
>>> for student in students.find({"rollno": {"$gte": 2}}):
			   print(student)
		   {'classid': 'V', '_id': ObjectId('548c0584838d1f11b0d17d53'), 'name': 'David', 'rollno': 2}
		   {'classid': 'V', '_id': ObjectId('548c058a838d1f11b0d17d54'), 'name': 'Shekhar', 'rollno': 3}
>>>

Считать документы

Используя операцию count (), вы можете подсчитать количество документов в коллекции.

>>> students.count()
3
>>>

Обновить конкретный документ

Вы можете редактировать конкретный документ с помощью операции update ().

>>> students.find_one({"name": "Shekhar"})
{'classid': 'V', '_id': ObjectId('548c058a838d1f11b0d17d54'), 'name': 'Shekhar', 'rollno': 3}
>>> students.update({"name": "Shekhar"}, {'$set':{'rollno': 12}})
{'updatedExisting': True, 'nModified': 1, 'ok': 1, 'n': 1}
>>> students.find_one({"name": "Shekhar"})
{'classid': 'V', '_id': ObjectId('548c058a838d1f11b0d17d54'), 'name': 'Shekhar', 'rollno': 12}
>>>

Удалить конкретный документ

Вы можете удалить конкретный документ, используя операцию удаления ().

>>> students.remove({"rollno": 12})
{'ok': 1, 'n': 1}
>>> for student in students.find():
             student
               {'classid': 'V', '_id': ObjectId('548c02cd838d1f11b0d17d52'), 'name': 'Arun', 'rollno': 1}
			   {'classid': 'V', '_id': ObjectId('548c0584838d1f11b0d17d53'), 'name': 'David', 'rollno': 2}
>>>

Предыдущий: Java Драйвер
Далее: PHP Драйвер

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code