CドライバーのmongoDBでmapreduceを実行したいと思います。
しかし、私が目標を達成するための唯一の方法があります。
あれは、
mongo_simple_str_command( conn, "db", "$eval",legalCommand, &b )
$ evalは、終了するまで読み取りおよび書き込みプロセスをブロックする可能性があるためです。
「mongo_run_command」でもこれができると聞きました。
どんなに簡単な例を試しても、mongoCドライバーでmapreduceを機能させることはできません。
さらに、conn->lasterrstrとconn->errstrは何も残っていません。
コードは次のとおりです。
bson_init( &cmd );
bson_append_string( &cmd, "mapreduce", "country2" );
bson_append_string( &cmd, "map" , "function() {emit(this.city, this.pop);}" );
bson_append_string( &cmd, "reduce", "function(keyCustId, value) {return value; }" );
bson_append_string( &cmd, "out", "c" );
bson_finish( &cmd );
mongo_run_command( conn, "country2", &cmd, &output );//the return value is always -1
----データ化----
db.country2.insert({city:'tai'、pop:100、land:3})
db.country2.insert({city:'pei'、pop:120、land:4})
db.country2.insert({city:'kao'、pop:10、land:30})
----データ化----
誰かがそれを機能させることができますか、またはmapreduceを達成するための別の方法を私に与えることができますか?
ありがとう。