You are currently viewing MongoDB Python | Insert (вставка) и Update (обновление) данных

MongoDB Python | Insert (вставка) и Update (обновление) данных

Предварительные требования: Основы Python MongoDB
Сначала мы должны понять, как вставить документ/запись в коллекцию базы данных. Затем мы бы поработали над тем, как обновить существующий документ в MongoDB, используя библиотеку pymongo на python. Команды обновления помогают нам обновлять данные запроса, вставленные уже в коллекцию баз данных MongoDB.

Вставка данных

Сначала мы вставим данные в MongoDB.

  • Шаг 1 – Установление соединения: Номер порта по умолчанию: 27017
conn = MongoClient(‘localhost’, port-number)

Если используется номер порта по умолчанию, т. е. 27017. Альтернативный способ подключения:

conn = MongoClient()
  • Шаг 2 – Создайте базу данных или переключитесь на существующую базу данных:
db = conn.dabasename

Создайте коллекцию или переключитесь на существующую коллекцию:

collection = db.collection_name
  • Шаг 3 – Вставьте : Чтобы вставить данные, создайте объект словаря и вставьте данные в базу данных. Способ, используемый для вставки данных:
 insert_one() или insert_many()

После вставки для поиска документов внутри коллекции мы используем команду find (). Метод find() выдает запрос для получения данных из коллекции в MongoDB. Все запросы в MongoDB имеют область действия одной коллекции.

Примечание: Идентификатор объекта отличается для каждой записи в коллекции баз данных.
Давайте разберемся во вставке данных с помощью кода:

# Python code to illustrate
# inserting data in MongoDB
from pymongo import MongoClient

try:
	conn = MongoClient()
	print("Connected successfully!!!")
except:
	print("Could not connect to MongoDB")

# database
db = conn.database

# Created or Switched to collection names: my_gfg_collection
collection = db.my_gfg_collection

emp_rec1 = {
		"name":"Mr.Geek",
		"eid":24,
		"location":"delhi"
		}
emp_rec2 = {
		"name":"Mr.Shaurya",
		"eid":14,
		"location":"delhi"
		}

# Insert Data
rec_id1 = collection.insert_one(emp_rec1)
rec_id2 = collection.insert_one(emp_rec2)

print("Data inserted with record ids",rec_id1," ",rec_id2)

# Printing the data inserted
cursor = collection.find()
for record in cursor:
	print(record)

Выход:

Connected successfully!!!
Data inserted with record ids    
{'_id': ObjectId('5a02227b37b8552becf5ed2a'), 
'name': 'Mr.Geek', 'eid': 24, 'location': 'delhi'}
{'_id': ObjectId('5a02227c37b8552becf5ed2b'), 'name':
'Mr.Shaurya', 'eid': 14, 'location': 'delhi'}

Обновление данных в MongoDB

Используемые методы:

Параметры update_one() и update_many() передано:

+ документ фильтра, соответствующий документам для обновления
+ документ обновления, определяющий выполняемую модификацию
+ необязательный параметр upsert

После вставки данных в MongoDB обновим данные сотрудника с идентификатором: 24

# Python code to illustrate
# updating data in MongoDB
# with Data of employee with id:24
from pymongo import MongoClient

try:
	conn = MongoClient()
	print("Connected successfully!!!")
except:
	print("Could not connect to MongoDB")

# database
db = conn.database

# Created or Switched to collection names: my_gfg_collection
collection = db.my_gfg_collection

# update all the employee data whose eid is 24
result = collection.update_many(
		{"eid":24},
		{
				"$set":{
						"name":"Mr.Geeksforgeeks"
						},
				"$currentDate":{"lastModified":True}
				
				}
		)



print("Data updated with id",result)

# Print the new record
cursor = collection.find()
for record in cursor:
	print(record)

Выход:

Connected successfully!!!
Data updated with id 
{'_id': ObjectId('5a02227b37b8552becf5ed2a'), 
'name': 'Mr.Geeksforgeeks', 'eid': 24, 'location': 
'delhi', 'lastModified': datetime.datetime(2017, 11, 7, 21, 19, 9, 698000)}
{'_id': ObjectId('5a02227c37b8552becf5ed2b'), 'name': 
'Mr.Shaurya', 'eid': 14, 'location': 'delhi'}

Чтобы узнать количество документов или записей в коллекции, используйте обновленную информацию.

 print(result.matched_count) 

Здесь выход будет равен 1.