Вставка и удаление документов из коллекции MongoDB в Python

Чтобы вставить документ в коллекцию MongoDB на языке Python, мы используем PyMongo и выполним следующие действия:

  1. Создайте клиента для экземпляра MongoDB.
  2. Сообщите клиенту имя базы данных. Он возвращает ссылку на базу данных.
  3. Укажите имя вашей новой коллекции в качестве индекса ссылки на базу данных. Он возвращает ссылку на коллекцию.
  4. Используйте метод insert_one() для коллекции и передайте словарь в качестве аргумента функции.

Быстрый фрагмент кода для вставки одного документа в MongoDB с использованием Python:

x = mycollection.insert_one({'key1':'value1', 'key2':'value2'})

Пример

В следующем примере мы вставляем документ в коллекцию с именем «разработчики».

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")

#use database named "organisation"
mydb = myclient["organisation"]

#use collection named "developers"
mycol = mydb["developers"]

#dictionary as a document
dict = { "name": "Kiku", "address": "Germany" }

#insert a document to the collection
x = mycol.insert_one(dict)

#id returned by insert_one
print("Document inserted with id: ", x.inserted_id)

print("\nDocuments in developers collection\n----------------------------------")
#print all the documents in the collection
for x in mycol.find():
  print(x)

Как вставить документ в MongoDB?

Примечание . Убедитесь, что вы правильно указали имя базы данных и коллекции. В противном случае будет создана новая база данных или коллекция, если она еще не существует. И все это происходит без предупреждения о том, что базы данных или коллекции нет.

Как вставить несколько документов?

Вы можете использовать функцию insert_many() для вставки списка документов. Она принимает список в Python в качестве аргумента и вставляет эти документы в коллекцию.

В следующем примере мы выбрали набор разработчиков базы данных организации. Затем мы инициализировали список с несколькими документами. Мы передаем список в функцию insert_many() для выполнения работы.

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")

#use database named "organisation"
mydb = myclient["organisation"]

#use collection named "developers"
mycol = mydb["developers"]

#list of documents
list = [{ "name": "Kiku", "address": "Germany" },
		{ "name": "Lini", "address": "Sweden" },
		{ "name": "Sree", "address": "India" },
		{ "name": "Raghu", "address": "India" },
		{ "name": "Mams", "address": "France" }]

#insert multiple documents
x = mycol.insert_many(list)

print('ids of inserted documents\n---------------------')
for id in x.inserted_ids:
	print(id)

Функция возвращает список идентификаторов документов, которые вставлены в коллекцию. Вы можете сохранить их в переменной и получить к ним доступ.

Функция insert_many()

Вы можете удалить один или несколько документов из коллекции, используя функции delete_one() или delete_many() соответственно.

Как удалить один документ?

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

Пример

В следующем примере мы удалим один документ, соответствующий заданным критериям.

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")

#use database named "organisation"
mydb = myclient["organisation"]

#use collection named "developers"
mycol = mydb["developers"]

print('Documents in Collection\n-----------------------')
for doc in mycol.find():
	print(doc)

#query to delete document
query = {'address':'India'}

#delete one document
mycol.delete_one(query)

print('\nDocuments in Collection after delete_one()\n-----------------------')
for doc in mycol.find():
	print(doc)

Как удалить один документ

Как удалить много документов?

Функция delete_many() может быть вызвана для коллекции. Функция принимает запрос в качестве аргумента и удаляет все документы, соответствующие данному запросу.

Пример

В следующем примере мы удалим несколько документов, соответствующих заданным критериям.

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")

#use database named "organisation"
mydb = myclient["organisation"]

#use collection named "developers"
mycol = mydb["developers"]

print('Documents in Collection\n-----------------------')
for doc in mycol.find():
	print(doc)

#query to delete document
query = {'address':'India'}

#delete many document
mycol.delete_many(query)

print('\nDocuments in Collection after delete_many	()\n-----------------------')
for doc in mycol.find():
	print(doc)

удаление документов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *