MongoDB Python | Вставить и обновить данные
Предварительные требования: основы MongoDB Python
Сначала мы поймем, как вставить документ / запись в коллекцию базы данных. Затем мы будем работать над тем, как обновить существующий документ в MongoDB, используя библиотеку pymongo в python. Команды обновления помогают нам обновить данные запроса, уже вставленные в коллекцию базы данных MongoDB.
Вставить данные
Сначала мы вставим данные в MongoDB.
- Шаг 1 - Установление соединения : номер порта По умолчанию: 27017
conn = MongoClient ('localhost', номер порта)
При использовании номера порта по умолчанию, например 27017. Альтернативный метод подключения:
conn = MongoClient ()
- Шаг 2 - Создайте базу данных или переключитесь на существующую базу данных:
db = conn.dabasename
Создать коллекцию или переключиться на существующую коллекцию:
collection = db.collection_name
- Шаг 3 - Вставка: для вставки данных создайте объект словаря и вставьте данные в базу данных. Метод, используемый для вставки данных:
insert_one () или insert_many ()
После вставки, чтобы найти документы внутри коллекции, мы используем команду find (). Метод find () выдает запрос на получение данных из коллекции в MongoDB. Все запросы в MongoDB имеют объем единой коллекции.
Примечание. ObjectId отличается для каждой записи в коллекции базы данных.
Давайте разберемся с вставкой данных с помощью кода: -# 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)
Выход:
Подключился успешно !!! Данные вставлены с идентификаторами записей {'_id': ObjectId ('5a02227b37b8552becf5ed2a'), 'name': 'Mr.Geek', 'eid': 24, 'location': 'delhi'} {'_id': ObjectId ('5a02227c37b8552becf5ed2b'), 'name': 'Мистер Шаурья', 'ид': 14, 'местоположение': 'Дели'}
Обновление данных в MongoD B
Используемые методы: 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) |
Выход:
Подключился успешно !!! Данные обновлены с идентификатором {'_id': ObjectId ('5a02227b37b8552becf5ed2a'), 'name': 'Mr.Geeksforgeeks', 'eid': 24, 'location': 'delhi', 'lastModified': datetime.datetime (2017, 11, 7, 21, 19, 9, 698000)} {'_id': ObjectId ('5a02227c37b8552becf5ed2b'), 'name': 'Мистер Шаурья', 'ид': 14, 'местоположение': 'Дели'}
Чтобы узнать количество обновленных документов или записей в коллекции, используйте.
печать (результат.matched_count)
Здесь вывод будет 1.