|
不使用mapreduce,没有必要,低,也无法取到结果。改为使用aggregate。代码如下:
bson cmd[1];
bson out[1];
bson_init(cmd);
bson_append_string(cmd, "aggregate", "mytable");
bson_append_start_array(cmd, "pipeline");
bson_append_start_object(cmd, "0");
bson_append_start_object(cmd, "$group");
bson_append_null(cmd, "_id");
//bson_append_string(cmd, "_id", "null");
bson_append_start_object(cmd, "sum");
bson_append_string(cmd, "$sum", "$a_price");
bson_append_finish_object(cmd);
bson_append_finish_object(cmd);
bson_append_finish_object(cmd);
bson_append_start_object(cmd, "1");
bson_append_start_object(cmd, "$project");
bson_append_int(cmd, "_id", 0);
bson_append_int(cmd, "sum", 1);
bson_append_finish_object(cmd);
bson_append_finish_object(cmd);
bson_append_finish_array(cmd);
bson_finish(cmd);
bson_print(cmd);
const int result = mongo_run_command(conn, "mydb", cmd, out);
最关键的是,数组的概念,如代码上面所示的数组元素0和数组元素1,这是个大坑,没有它们,就无法取得预期结果。
版权声明:本文为博主原创文章,未经博主允许不得转载。 |
|
|