当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python MongoDB bulk_write()用法及代码示例


MongoDB 是一个开源的 document-oriented 数据库。 MongoDB 以键值对的形式存储数据,是一个 NoSQL 数据库程序。术语 NoSQL 意味着非关系。有关 MongoDB 的更详细介绍,请参阅 MongoDB:An Introduction。现在让我们使用 Python 了解 MongoDB 中的 Bulk Write 操作。

bulk_write()

PyMongo 函数bulk_write()向服务器发送一批写操作。批量执行写操作可以提高写吞吐量。

用法: bulk_write(requests, ordered = True, bypass_document_validation = False, session = None)
参数:
  • requests:请求作为写操作实例列表传递。
  • ordered:(可选)一个布尔值,指定操作执行是以有序还是无序的方式执行的。默认情况下,它设置为 True。
  • bypass_document_validation:(可选)指示是否绕过文档验证的值。
  • session:(可选)一个 ClientSession。

范例1:使用执行多个请求bulk_write()


# importing the module
from pymongo import MongoClient, InsertOne, DeleteOne, ReplaceOne
  
# creating a MongoClient object 
client = MongoClient() 
     
# connecting with the portnumber and host 
client = MongoClient("mongodb://localhost:27017/") 
   
# accessing the database 
database = client['database']   
   
# access collection of the database 
mycollection = mydatabase['myTable'] 
  
# defining the requests
requests = [InsertOne({"Student name":"Cody"}),
            InsertOne({ "Student name":"Drew"}),
            DeleteOne({"Student name":"Cody"}),
            ReplaceOne({"Student name":"Drew"},
                       { "Student name":"Andrew"}, upsert = True)]
  
# executing the requests
result = mycollection.bulk_write(requests)
  
for doc in mycollection.find({}):
    print(doc)

在这里,前两个文档是使用命令 InsertOne 插入的。然后使用 DeleteOne 命令,删除学生名:Cody 的文档。使用 ReplaceOne 命令,名为 Drew 的学生将替换为姓名 Andrew。因此,所有这些命令都按顺序执行,我们得到以下输出:



输出:

{‘_id’:ObjectId(‘5f060aa5a9666ecd86f5b6bd’), ‘Student name’:‘Andrew’}

范例2:


# importing the modules
from pymongo import MongoClient, InsertOne, DeleteOne, ReplaceOne, UpdateOne
  
# creating a MongoClient object 
client = MongoClient() 
     
# connecting with the portnumber and host 
client = MongoClient("mongodb://localhost:27017/") 
   
# accessing the database 
database = client['database']   
   
# access collection of the database 
mycollection = mydatabase['myTable']  
  
# defining the requests
requests = [InsertOne({ "x":5}),
            InsertOne({ "y":2}),
            UpdateOne({'x':5}, {'$inc':{'x':3}}),
            DeleteOne({ "y":2})]
  
# executing the requests
result = mycollection.bulk_write(requests)
  
for doc in mycollection.find({}):
    print(doc)

这里首先使用 InsertOne 命令插入两个文档。然后更新 x 等于 5 的文档,并将其值增加 3。最后,使用命令 DeleteOne 删除包含 y 的文档。

输出:

{'_id':ObjectId('5f060cd7358fae75aad1ae94'), 'x':8}




相关用法


注:本文由纯净天空筛选整理自gauravbabbar25大神的英文原创作品 Python MongoDB – bulk_write()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。