MongoDB C++驱动程序API中的BSONArrayBuilder class允许构建BSON数组,例如。

BSONArrayBuilder ba;
ba.append("foo");
ba.append("bar");
...
connection->query("col", BSON("x" << BSON("$in" << ba.arr())));

将在mongo shell上执行等于以下查询:
db.col.find({"x": {"$in": [ "foo", "bar" ] }})

但是,我需要按以下方式(基于mongo shell)执行基于正则表达式而不是字符串的查询:
db.col.find({"x": {"$in": [ /^foo/, /^bar/ ] }})

如何使用C++驱动程序构建该数组?请注意BSONObjBuilder class具有appendRegex()方法,该方法未包含在BSONArrayBuilder类中

高度赞赏有关此问题的任何解决方法或指针。谢谢!

最佳答案

我们最近在MongoDB C++驱动程序旧版发行版中添加了对此功能的支持,它将在即将发布的1.0.0版本中候选:

JIRA ticket in CXX Project

Commit

关于c++ - 在BSONArrayBuilder中包含正则表达式元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24243276/

10-10 21:22