我有一個存款借記和貸記交易的交易分類賬。我需要確定account : 121
的貸方餘額。我找到了一個辦法。只是,我不瞭解我所做的一半,以及爲什麼這是有效的。MapReduce來確定分類帳中的貸方餘額
var dummyschema = mongoose.Schema({
account: Number,
refAccount: Number,
credit: Boolean,
amount: Number,
});
var dummyTx = mongoose.model('dummyTx', dummyschema);
var c = {};
c.map = function() {emit("credit", this.amount);};
c.reduce = function(key, values) { return Array.sum(values);};
c.query = { account : 121, credit: true };
c.out = {inline:1};
var d = {};
d.map = function() {emit("debit", this.amount);};
d.reduce = function(key, values) { return Array.sum(values);};
d.query = { account : 121, credit: false };
d.out = {inline:1};
dummyTx.mapReduce(c, function (error, credit) {
dummyTx.mapReduce(d, function (err, debit) {
console.log(credit['0'].value - debit['0'].value);
});
});
請問您是否有更好的方法來做到這一點。我閱讀了MapReduce文檔條目,但它大部分都飛過了我的腦海。如果你只是給我代碼,我會試着去理解它,儘管解釋會更有幫助。
大,心有靈犀的同時一樣...! ;) –
@SylvainLeroux你可以再說一遍! – chridam
非常感謝。聚合框架確實看起來更具可讀性,並且在我閱讀文檔時,我明白它更加靈活多變!我想我會花一些時間閱讀這個:D – amingilani