📜  MongoDB Python |插入和更新数据

📅  最后修改于: 2021-06-28 16:12:45             🧑  作者: Mango

先决条件: MongoDB Python基础
我们首先将了解如何在数据库集合中插入文档/条目。然后,我们将研究如何使用Python的pymongo库更新MongoDB中的现有文档。更新命令可帮助我们更新已插入MongoDB数据库集合中的查询数据。

插入资料

我们将首先在MongoDB中插入数据。

  • 步骤1 –建立连接:端口号默认:27017
    conn = MongoClient(‘localhost’, port-number)

    如果使用默认端口号,即27017。备用连接方法:

    conn = MongoClient()
  • 第2步-创建数据库或切换到现有数据库:
    db = conn.dabasename

    创建一个集合或切换到现有集合:

    collection = db.collection_name
  • 步骤3 –插入:要插入数据,请创建字典对象并将数据插入数据库。插入数据的方法:
    insert_one() or 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)
    

    输出:

    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'}
    

在MongoD B中更新数据

使用的方法:update_one()和update_many()
传递的参数:
+过滤器文档以匹配要更新的文档
+更新文档以指定要执行的修改
+一个可选的upsert参数

在MongoDB中插入数据后,让我们更新ID为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。