C++ 在mongoDB中使用C++;司机
我尝试使用$MeNeMatt与MangoDB C++驱动程序(2.6COMPAT)进行投影: 样本文件:C++ 在mongoDB中使用C++;司机,c++,mongodb,C++,Mongodb,我尝试使用$MeNeMatt与MangoDB C++驱动程序(2.6COMPAT)进行投影: 样本文件: { "name" : "Tom", "lists" : [ {"value" : 1}, {"value" : 2}, {"value" : 3} ] } 我想为Tom获取一份仅值1的文档 在shell中,它将如下所示: > db.aaa.find({"name" : "Tom", "lists.value" : 1}, {
{
"name" : "Tom",
"lists" : [
{"value" : 1}, {"value" : 2}, {"value" : 3}
]
}
我想为Tom获取一份仅值1的文档
在shell中,它将如下所示:
> db.aaa.find({"name" : "Tom", "lists.value" : 1}, {"lists" : {$elemMatch : {"value" : 1} } })
DBClientConnection conn;
conn.connect("localhost:27017");
BSONOBj projection = fromjson("{ lists: {\"$elemMatch:\": {value: 1} } }");
conn.query("db.aaa", Query("{}"), 0, 0, &projection)
现在,没有合适的覆盖query
方法,该方法接受查询的投影部分的BSONObj
。我是不是遗漏了什么
非常感谢您的帮助 您需要使用DBClientBase::query()方法。其签名如下:
auto_ptr<DBClientCursor> DBClientBase::query(
const string &ns,
Query query,
int nToReturn,
int nToSkip,
const BSONObj *fieldsToReturn,
int queryOptions,
int batchSize
)
无法+1您的解决方案,信誉不足:)无论如何,它是有效的,除了第二个参数应该是BSONObj,“fromjson”部分应该通过引用传递,而且您忘记了在queryOptions和batchSize中放置值。是的,我只想告诉您要点。最后两个参数实际上有默认值,所以您不需要它们,并且query可以是一个查询对象(更易于使用)。谢谢你的其他反馈,我会更新的。(更新:更新)