Я хочу, чтобы перевести следующий скрипт (MongoDB версия оболочки: 2.6.1) на языке Си ++MongoDb общая сумма C++
db.account.aggregate([{$group: { _id:null, totalAmount: { $sum: "$amount" },count: { $sum: 1 }}}])
У меня попробовать следующий код:
void test1(mongo::DBClientConnection& c)
{
BSONObj res;
BSONArray pipeline = BSON_ARRAY(
BSON("$group" <<
BSON("_id" << "null") <<
BSON("totalAmount" << BSON("$sum" << "$amount"))<<
BSON("count" << BSON("$sum" << 1))
)
);
c.runCommand("test",BSON("aggregate" << "account" << "pipeline" << pipeline),res);
cout << res.toString() << endl;
}
Над кодом приведет к ошибке компилятора!
void test2(mongo::DBClientConnection& c)
{
BSONObj res;
vector<BSONObj> pipeline;
pipeline.push_back(BSON("$group" << BSON("_id" << "null")));
pipeline.push_back(BSON("totalAmount" << BSON("$sum" << "$amount")));
c.runCommand("test", BSON("aggregate" << "account" << "pipeline" << pipeline), res);
cout << collection1<<res.toString() << endl;
}
Выше кода вызовет ошибку времени выполнения!
Кто-нибудь может мне помочь? Спасибо!
Этот код работал отлично! Но [BSONArray pipe = BSON_ARRAY (...);] вызвал ошибку времени выполнения! Большое спасибо за вашу большую помощь ! –