簡體   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