我知道在 0.6 之前与流星一起打包的“迷你 mongo”在聚合方面有一些限制,但希望随着 0.6 的发布,故事会更容易一些。
我试图解决的是 mini-mongo 中缺乏“聚合”。
我有一个带有这样记录的 mongodb
db.account_records.findOne()
{
"type" : "initial_balance",
"amt" : 10,
"account_id" : "95CPB9Be8NX3TGSpi",
"_id" : "L9D7Agt4gW2Ht4NTA"
}
我想(在客户端)订阅如下查询..
db.events.aggregate( [ { $group: {_id:"$account_id", balance: { $sum: "$amt"}}}]);
..这给出了(当使用终端“mongo meteor”风格的“真实”mongodb运行时)..
{
"result" : [
{
"_id" : "Dn5Eouw8K4RrP9SGw",
"balance" : 169.99922000000308
},
{
"_id" : "Bawopno2QGs8guMWy",
"balance" : 1
},
{
"_id" : "95CPB9Be8NX3TGSpi",
"balance" : 5
}
],
"ok" : 1
}
在我看来,在客户端执行复杂的聚合子句是不可能的(或可取的),所以我可以看到我们拥有 mini-mongo 的原因。但我希望能够在新版本的流星中安装标准 npm 模块,创建一个可以从“真实”mongo 发布并在 mini-mongo 中订阅的查询可能会更容易一些?
--
PS我已经找到了,但是所有这些双下划线让我很紧张,我会尝试一些复杂的东西...... https://github.com/meteor/meteor/pull/644