[英]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.