как получить `_id` после загрузки документа в mongo-c-driver или mongo-cxx-driver?

Как получить _id после размещения документа в mongo-c-driver или mongo-cxx-driver?

Следующий фрагмент кода из 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

Решение

В Mongo C Driver вы можете использовать bson_t *reply получить возвращенный _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 ++ BSONObj *info в эта функция:

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

Другие решения


По вопросам рекламы [email protected]