Чтобы вставить документ в коллекцию MongoDB на языке Python, мы используем PyMongo и выполним следующие действия:
- Создайте клиента для экземпляра MongoDB.
- Сообщите клиенту имя базы данных. Он возвращает ссылку на базу данных.
- Укажите имя вашей новой коллекции в качестве индекса ссылки на базу данных. Он возвращает ссылку на коллекцию.
- Используйте метод 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)

Примечание . Убедитесь, что вы правильно указали имя базы данных и коллекции. В противном случае будет создана новая база данных или коллекция, если она еще не существует. И все это происходит без предупреждения о том, что базы данных или коллекции нет.
Как вставить несколько документов?
Вы можете использовать функцию 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)
Функция возвращает список идентификаторов документов, которые вставлены в коллекцию. Вы можете сохранить их в переменной и получить к ним доступ.

Вы можете удалить один или несколько документов из коллекции, используя функции 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)
