0

我正在将 MongoDB 与 c 客户端 mongoc 1.8.1 一起使用。

我正在执行批量更新,有 6 个 mongoc_bulk_operation_update_one() 操作。但是,对于 3 次更新,选择文档与数据库中的任何内容都不匹配(例如 query1、query2、query3)。

...
mongoc_bulk_operation_t* pBulk = mongoc_collection_create_bulk_operation(coll_,false,NULL); //unorderd

mongoc_bulk_operation_update_one(pBulk,&query1,&document,false);
mongoc_bulk_operation_update_one(pBulk,&query2,&document,false);
mongoc_bulk_operation_update_one(pBulk,&query3,&document,false);
mongoc_bulk_operation_update_one(pBulk,&query4,&document,false);
mongoc_bulk_operation_update_one(pBulk,&query5,&document,false);
mongoc_bulk_operation_update_one(pBulk,&query6,&document,false);

bson_t reply;
bson_error_t error;
uint32_t ret = mongoc_bulk_operation_execute(pBulk,&reply,&error);

if (ret) {
    str = bson_as_canonical_extended_json (&reply, NULL);
    printf ("%s\n", str);
    bson_free (str);
}

回复文档统计匹配修改正确的个数(3):

reply={ "nInserted" : { "$numberInt" : "0" }, "nMatched" : { "$numberInt" : "3" }, "nModified" : { "$numberInt" : "3" }, "nRemoved" : { "$numberInt" : "0" }, "nUpserted" : { "$numberInt" : "0" }, "writeErrors" : [  ] };

但没有给出哪些更新不匹配的线索。

有没有办法以某种方式执行此操作,从而为我提供不匹配的更新索引?

4

0 回答 0