如何在mongo-c-driver或mongo-cxx-driver中插入文件后获取`_id`?

时间:2014-10-20 19:38:05

标签: c++ c mongodb mongo-c-driver mongo-cxx-driver

如何在mongo-c-driver或mongo-cxx-driver中插入文档后获取_id

以下代码段来自mongo-shell,其中显示_id最后一行中的WriteResult字段。

db.coll.update(
               { item: "ZZZ135" },
               {  item: "ZZZ135",  stock: 5,  tags: [ "database" ] },
               {upsert: true} 
              )

WriteResult({
    "nMatched" : 0,
    "nUpserted" : 1,
    "nModified" : 0,
    "_id" : ObjectId("54455f33b247e073d7161b32")
})

1 个答案:

答案 0 :(得分:3)

在mongo C驱动程序中,您可以使用bson_t *reply接收this function中返回的_id

bool mongoc_collection_command_simple (
      mongoc_collection_t       *collection,
      const bson_t              *command,
      const mongoc_read_prefs_t *read_prefs,
      bson_t                    *reply,
      bson_error_t              *error
)

C ++中的等价物是this function中的BSONObj *info

bool mongo::DBClientWithCommands::simpleCommand (
        const std::string &     dbname,
        BSONObj *   info,
        const std::string &     command 
)