Предварительные требования: Основы 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.