Mongo C ++驱动程序提供了一个函数来获取带有给定查询结果的游标,例如,在x
mycol
集合中将字段mydb
设置为1的所有文档1}}数据库我们可以使用以下内容(假设c
是指向正确配置的DBClientBase
对象的指针):
auto_ptr<DBClientCursor> cursor = c->query("mydb.mycol", BSON(x << 1));
此外,还有一个函数可以获取给定查询的结果数:
int n = c->count("mydb.mycol", BSON(x << 1));
在开始处理查询结果之前,我需要知道结果的数量。我知道这样做的方式是以下列方式结合两种操作:
int n = c->count("mydb.mycol", BSON(x << 1));
// Do some checking based on n
...
auto_ptr<DBClientCursor> cursor = c->query("mydb.mycol", BSON(x << 1));
// Process cursor results
...
然而,这涉及到MongoDB级别的2个操作。在通过结果之前,是否可以知道游标提供的结果数量,这样我可以保存调用count()
函数?像这样:
auto_ptr<DBClientCursor> cursor = c->query("mydb.mycol", BSON(x << 1));
int n = (get the number from the 'cursor' variable in some way)
// Do some checking based on n
...
// Process cursor results
...
答案 0 :(得分:0)
我似乎迟到了,但是cursor.size()似乎完全符合你的要求。
https://docs.mongodb.com/manual/reference/method/cursor.size/#cursor.size