Bulk.getOperations()

在本页面

  • Bulk. getOperations ( )
    • 2.6 版的新功能。

返回通过Bulk.execute()执行的写操作数组。返回的写操作由 MongoDB 确定要执行的组。有关 MongoDB 如何对批量写入操作列表进行分组的信息,请参阅Bulk.execute() Behavior

只能在Bulk.execute()之后使用Bulk.getOperations()。在调用Bulk.execute()之前先调用Bulk.getOperations()会导致不完整列表。

Example

以下代码在items集合上初始化Bulk()操作构建器,添加一系列写操作,执行这些操作,然后在bulk构建器对象上调用getOperations()

var bulk = db.items.initializeUnorderedBulkOp();

for (var i = 1; i <= 1500; i++) {
    bulk.insert( { x: i } );
}

bulk.execute();
bulk.getOperations();

getOperations()方法返回执行了操作的数组。输出显示 MongoDB 将操作分为两组,一组包含 1000 个操作,一组包含 500 个操作。有关 MongoDB 如何将批量写入操作列表分组的信息,请参阅Bulk.execute() Behavior

尽管该方法返回了返回的数组中的所有 1500 个操作,但为简洁起见,此页面省略了一些结果。

[
   {
      "originalZeroIndex" : 0,
      "batchType" : 1,
      "operations" : [
         { "_id" : ObjectId("53a8959f1990ca24d01c6165"), "x" : 1 },

         ... // Content omitted for brevity

         { "_id" : ObjectId("53a8959f1990ca24d01c654c"), "x" : 1000 }
      ]
   },
   {
      "originalZeroIndex" : 1000,
      "batchType" : 1,
      "operations" : [
         { "_id" : ObjectId("53a8959f1990ca24d01c654d"), "x" : 1001 },

         ... // Content omitted for brevity

         { "_id" : ObjectId("53a8959f1990ca24d01c6740"), "x" : 1500 }
      ]
   }
]

Returned Fields

该数组包含具有以下字段的文档:

  • originalZeroIndex

    • 根据零索引指定将操作添加到批量操作构建器的 Sequences;例如添加到批量操作构建器中的第一个操作的originalZeroIndex值为0
  • batchType

    • 指定写操作类型。
batchTypeOperation
1Insert
2Update
3Remove
  • operations
    • 包含操作详细信息的文档数组。

See also