gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:57 25 4
gpt4 key购买 nike

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);
}

关于c++ - 如何将mongo shell命令转换为mongocxx语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48681335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com