繁体   English   中英

如何将mongo shell命令转换为mongocxx语法

[英]how convert mongo shell command to mongocxx grammar

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, ... } ]东西$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);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM