如何将Mongo Shell命令转换为Mongocxx语法

how convert mongo shell command to mongocxx grammar

本文关键字:转换 Mongocxx 语法 命令 Shell Mongo      更新时间:2023-10-16

db.members.find({" groupId":115,userId:{$ in:[1000,1001]}}(;

我发现很多地方,包括mongodb/github。但是没有用,谁能告诉我如何实施此查询使用C ,非常感谢!

如下无法工作:

auto members = bsoncxx::builder::basic::array{};
for (vector<string>::size_type i = 0; i != userIds.size(); ++i) {
        int id = std::atoi(userIds[i].c_str());
        bsoncxx::builder::basic::document doc;
        doc.append(kvp("userId", id));
        members.append(doc);
    }
auto docValue = make_document(kvp("id", gid), kvp("$in", members)));
auto res = coll.delete_many(docValue.view());

您是否尝试打印出mongocxx:to_json(docValue)以查看它的外观?我预测看起来不像您的想法。它会带来诸如$in : [ { 'userId' : 1001, 'userId' : 1002, ... } ]之类的东西。

相反,只需直接在循环中附加到成员:

auto members = bsoncxx::builder::basic::array{};
for (vector<string>::size_type i = 0; i != userIds.size(); ++i) {
        int id = std::atoi(userIds[i].c_str());
        members.append(id);
    }