当前位置: 代码迷 >> 其他数据库 >> MongoDB的地图reduce使用有关问题
  详细解决方案

MongoDB的地图reduce使用有关问题

热度:893   发布时间:2016-05-05 08:28:12.0
MongoDB的mapreduce使用问题

BSONObj DBClientWithCommands::mapreduce(const string &ns, const string &jsmapf, const string &jsreducef, BSONObj query, MROutput output);

这个是C++下MongoDB的mapreduce函数声明。其中有一个地方不明白,怎么获取执行mapreduce后的查询到的数据列表。该函数返回的是如下格式的BSON对象,但是我希望取得的是数据的查询结果,而不是统计结果。

             { result : <collection_name>,
               numObjects : <number_of_objects_scanned>,
               timeMillis : <job_time>,
               ok : <1_if_ok>,
               [, err : <errmsg_if_error>]
             }

------解决思路----------------------
不太确定c++驱动是如何定义,但是我想应该和java驱动差不多。在java驱动里面返回的查询结果也是BSON格式。
{ "serverUsed" : "localhost:27017" , "result" : [ { "_id" : "KSFO" , "avgTemp" : 249.5}] , "ok" : 1.0}


但是如果想获取里面的查询结果是非常容易的。应该CommandResult本身继承自BasicBSONObject,所以可以用get方法单独取出里面的查询结果。比如result.getString("result")就可以获得这个结果数组。
------解决思路----------------------
http://www.cnblogs.com/daizhj/archive/2010/06/10/1755761.html
  相关解决方案