0
で数える私はグループ集計を使用して数データ収集にコードを作成しているが、今、私は、プロセス・カウント・グループは、正しい結果を与えることができないという問題があります。私はどこに問題があるのか分からない。流星:グループ集計
このコードの結果は、Resultのようになります。
//js
Template.laporankategori.helpers({
profilcount: function() {
var subs = {};
Profil.find().forEach(function(e) {
if (subs[e.kategori] == null)
subs[e.kategori] = 0;
subs[e.kategori] += e.amount;
});
var result = [];
_.each(subs, function(value, key) {
result.push({kategori: key, amount: value});
});
return result;
}
});
//publish
Meteor.publish("profilcount",function(args) {
var sub = this;
var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;
var pipeline = [
{ "$group": {
"_id": "$kategori",
count:{$sum:amount}
}}
];
db.collection("profil").aggregate(
pipeline,
Meteor.bindEnvironment(
function(err, result) {
_.each(result, function(e) {
sub.added("profil", Random.id(), {
kategori: kategori._id,
amount: kategori.count
});
});
sub.ready();
},
function(error) {
Meteor._debug("Error doing aggregation: " + error);
}
)
);
});
// HTML {{#each profilcount}} <tr> <td>{{kategori}}</td> <td>{{ amount}}</td>
</tr> {{/each}}
私はこのような結果をしたい:私のコードがあります。 Result
集計(オブジェクト自体)の結果は何ですか? '$ group'ステージで' count:{$ sum: '$ amount'} 'を意味しませんでしたか? – MasterAM
はい、私はそれを意味するが、このコードの結果は何も意味しない。 – nurul
これを少し分解して問題を特定してください。集約自体の結果を確認し、それらがあなたの期待に合っていることを確認してください。次に、クライアントがコレクションから適切なデータを取得していることを確認し、最後にプレゼンテーションロジックが機能することを確認します。今は、物事がうまくいかない複数の場所があります。 – MasterAM