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