2016-03-22 45 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/