當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python MongoDB Update_one()用法及代碼示例


MongoDB 是一個 cross-platform document-oriented 和一個非關係(即 NoSQL)數據庫程序。它是一個開源文檔數據庫,以鍵值對的形式存儲數據。

首先創建一個我們執行 update_one() 操作的數據庫:


# importing Mongoclient from pymongo
from pymongo import MongoClient 
   
try: 
    conn = MongoClient()  # Making coonection
  
except: 
    print("Could not connect to MongoDB") 
   
# database 
db = conn.database 
   
# Created or Switched to collection
# names:GeeksForGeeks
collection = db.GeeksForGeeks 
   
# Creating Records:
record1 = { "appliance":"fan",
           "quantity":10,
           "rating":"3 stars",
           "company":"havells"} 
record2 = { "appliance":"cooler", 
           "quantity":15,
           "rating":"4 stars",
           "company":"symphony"} 
record3 = { "appliance":"ac",
           "quantity":20,
           "rating":"5 stars",
           "company":"voltas"} 
record4 = { "appliance":"tv",
           "quantity":12,
           "rating":"3 stars",
           "company":"samsung"} 
   
# Inserting the Data 
rec_id1 = collection.insert_one(record1) 
rec_id2 = collection.insert_one(record2) 
rec_id3 = collection.insert_one(record3) 
rec_id4 = collection.insert_one(record4)
   
# Printing the data inserted 
print("The data in the database is:")
cursor = collection.find() 
for record in cursor: 
    print(record) 

輸出:

python-mongodb-update-one-1

MongoDB shell :



python-update-one-mongodb-1

updateOne()

它是一個函數,我們可以通過它更新 MongoDB 數據庫或集合中的記錄。該方法主要關注我們傳遞的兩個參數,一個是定義要更新哪個文檔的查詢(即過濾器)對象,第二個是定義文檔新值的對象(即 new_values),其餘參數是可選的,我們將在語法部分討論。此函數查找與查詢匹配的第一個文檔,並使用定義文檔新值的對象對其進行更新,即根據過濾器更新集合中的單個文檔。
用法:

collection.update_one(filter, new_values, upsert=False, bypass_document_validation=False, collat​​ion=None, array_filters=None, session=None)

Parameters:

  • ‘filter’:與要更新的文檔匹配的查詢。
  • ‘new_values’:適用的修改。
  • ‘upsert’(可選):如果是 “True”,則在沒有文檔與過濾器匹配時執行插入。
  • ‘bypass_document_validation’(可選):如果是 “True”,則允許寫入文檔級驗證的 opt-out。默認值為 “False”。
  • ‘collation’(可選):類的實例:‘~pymongo.collat​​ion.Collat​​ion’。此選項僅在 MongoDB 3.4 及更高版本上受支持。
  • ‘array_filters’(可選):指定更新應應用哪些數組元素的過濾器列表。需要 MongoDB 3.6+。
  • ‘session’(可選):一個類:'~pymongo.client_session.ClientSession'。

範例1:在此示例中,我們將風扇數量從 10 更新為 25。


# importing Mongoclient from pymongo
from pymongo import MongoClient 
  
conn = MongoClient('localhost', 27017) 
# database 
db = conn.database 
  
# Created or Switched to collection
# names:GeeksForGeeks
collection = db.GeeksForGeeks
  
# Updating fan quantity form 10 to 25.
filter = { 'appliance':'fan' }
  
# Values to be updated.
newvalues = { "$set":{ 'quantity':25 } }
  
# Using update_one() method for single 
# updation.
collection.update_one(filter, newvalues) 
  
# Printing the updated content of the 
# database
cursor = collection.find()
for record in cursor: 
    print(record) 

輸出:

python-momgodb-update-one-2

MongoDB shell :



python-mongodb-update-one-3

範例2:在本例中,我們使用 update_one() 將電視公司名稱從 ‘samsung’ 更改為 ‘sony’:


# importing Mongoclient from pymongo
from pymongo import MongoClient 
  
  
conn = MongoClient('localhost', 27017) 
  
# database 
db = conn.database 
  
# Created or Switched to collection 
# names:GeeksForGeeks
collection = db.GeeksForGeeks
  
# Updating the tv company name from
# 'samsung' to 'sony'.
filter = { 'appliance':'tv' }
  
# Values to be updated.
newvalues = { "$set":{ 'company':"sony" } } 
  
# Using update_one() method for single updation.
collection.update_one(filter, newvalues) 
  
# Printing the updated content of the database
cursor = collection.find()
for record in cursor: 
    print(record) 

輸出:

python-mongodb-update-one-5

MongoDB shell :
python-mongodb-update-one-5

注意:“$set” 運算符將字段的值替換為指定的值。如果該字段不存在,則 “$set” 將添加具有指定值的新字段,前提是新字段不違反類型約束。




相關用法


注:本文由純淨天空篩選整理自VishwashVishwakarma大神的英文原創作品 Python MongoDB – Update_one()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。