2016-03-22 43 views
2

我想使用批量查找來檢索一組文件並返回集,我想知道什麼是批量查找返回?我的代碼是:MongoDB,批量發現返回

def bulk_find(collection_name, key, value): 

    bulk = db[collection_name].initialize_ordered_bulk_op() 

    bulk.find({key: value}) 

    results = bulk.execute() 

那麼,bulk.find在這裏返回什麼?該文件沒有具體說明它。

回答

3

這是返回BulkWriteOperation實例。從documentation

find(selector) 
Specify selection criteria for bulk operations. 

Parameters: 
selector (dict): the selection criteria for update and remove operations. 
Returns:  
A BulkWriteOperation instance, used to add update and remove operations to this bulk operation. 

pymongobulk操作界面。如果您想從某個集合中檢索多個文檔,則應使用相應集合的方法find。你只需要

results = db[collection_name].find({key:value}) 

此操作返回從集合collection_name的所有文件,其中key場== value的價值。

2

bulk.find返回一個接口,允許您將多個操作分組,以選擇數據。

例如更新,刪除。

將查詢分組併發送給MongodB成批執行非常有效。例如您希望增加某個供應商的產品的銷售佣金。這個委託並不是直截了當的,你必須在其上應用一些邏輯。

通常,如果沒有bulk.find ...,您將檢索所有匹配的文檔,進行更改併發送回服務器進行保存。

在bulk.find的情況下,您基本上做的是相同的事情,但不是單獨將每個文檔發送回服務器,而是保持批量緩存。一旦您調用bulk.execute,驅動程序將把所有更改集中在一起 並將它們發送到服務器。請參閱https://docs.mongodb.org/manual/reference/method/Bulk.find/