我有两个像协会和联合会这样的集合。贝娄是我的收藏结构, 1.association
{ "name" : "MJDMA", "uniqecode" : "Mjdma", "address" : "Chennai", "phoneno" : "0448676788", "mobileno" : "98786766567", "emailid" : "mjdma@mail.com", "website" : "www.mjdma.org", "status" : "on", "created" : "January 19th 2014, 11:23:44 am", "_id" : { "$oid" : "52dbb5c0279f660000000001" } }
{ "name" : "Coimbatore Jewellery association", "uniqecode" : "CJAB", "address" : "Coimbatore", "phoneno" : "9787457363", "mobileno" : "9787457363", "emailid" : "rvkvino@gmail.com", "website" : "www.cja.org", "status" : "off", "created" : "January 19th 2014, 11:24:36 am", "_id" : { "$oid" : "52dbb5f4279f660000000002" }, "modifiedAt" : "January 20th 2014, 7:40:36 am" }
2.associationrates
{ "associationid" : "52dbb5c0279f660000000001", "gold22ct1grm" : "2803", "gold24ct10grm" : "29980", "silver1grm" : "48.30", "silver1kg" : "45150", "created" : "January 20th 2014, 11:27:39 am", "_id" : { "$oid" : "52dd082be7b9660000000001" } }
{ "associationid" : "52dbb5f4279f660000000002", "gold22ct1grm" : "3400", "gold24ct10grm" : "39789", "silver1grm" : "63", "silver1kg" : "61000", "created" : "January 20th 2014, 1:35:59 pm", "_id" : { "$oid" : "52dd263f1e82e20000000001" } }
我将关联ID存储到关联集合中以供参考。我必须将关联详细信息显示为jqgrid,格式为Association Name,Rate1,Rate2,Rate3,Rate4,Updated Date and Time和associationrateid。因为我使用了以下代码
var moment = require('moment');
var associationrates = dbcon.collection('associationrates'); //dbcon is global variable of db object.
var association = dbcon.collection('associations');
exports.getAllassociationrates = function(req,callback)
{
var map = function () {
var output= {assoname:association.findOne({_id:this.associationid}).name,gold22ct1grm:this.gold22ct1grm, gold24ct10grm:this.gold24ct10grm,silver1grm:this.silver1grm,silver1kg:this.silver1kg,_id:this._id}
emit(this._id, output);
};
var reduce = function(key, values) {
var outs={ assoname:null , gold22ct1grm:null , gold24ct10grm:null , silver1grm:null , silver1grm:null , _id:null}
values.forEach(function(v){
if(outs.assoname ==null){
outs.assoname = v.assoname
}
if(outs.gold22ct1grm ==null){
outs.gold22ct1grm = v.gold22ct1grm
}
if(outs.gold24ct10grm ==null){
outs.gold24ct10grm = v.gold24ct10grm
}
if(outs.silver1grm ==null){
outs.silver1grm = v.silver1grm
}
if(outs.silver1kg ==null){
outs.silver1kg = v.silver1kg
}
if(outs._id ==null){
outs._id = v._id
}
});
return outs;
};
associationrates.mapReduce(map,reduce,{out: 'emp_dept'}, function(err, collection, stats) {
if(err) {
console.log(err);
callback(err,null);
}else{
console.log("Collection:");console.log(collection);
console.log(stats);
callback(null,stats);
}
});
}
但是像
那样得到错误{ [MongoError: exception: map invoke failed: JS Error: ReferenceError: association is not defined nofile_b:2]
请帮助任何人,如何解决此问题或是否有任何其他解决方案来实现我的预期输出。