[英]Meteor Collection not fetching data
在编辑其他文件并使应用程序变得更复杂之前,我有一个跟踪器功能可以正常工作,从而导致此问题。 该函数不返回任何数据
vrLoan
fundingData
我的代码:
Tracker.autorun(()=>{ // Tracker function for reactivity
const id = Session.get('data')._id;
const loans = Loans.find({fileId: id});
loans.forEach(o=>{
const vrLoan = VRLoans.find({parentId: o._id});
const fundingData = Funding.find({parentId: o._id});
const t = o.Type;
const n = o.description;
if(t && n && vrLoan.count() && fundingData.count()){
console.log("here")
fundDep.changed();
fundingNameSpace[t] = {};
if(t == "Bank Loan" || t == "Directors Loan" || t == "Lease" || t == "Loan Out/Invesment"){
fundingNameSpace[t][n] = new LoanCalc(t, vrLoan, fundingData);
}else if(t == "Share"){
fundingNameSpace[t][n] = new ShareCapCalc(vrLoan, fundingData);
}else if(t == "Other"){
fundingNameSpace[t][n] = new OtherIncomeCalc(vrLoan, fundingData);
}else if(t == "Cap"){
fundingNameSpace[t][n] = new CapitalGrantCalc(vrLoan, fundingData);
}
});
});
我猜我添加的新代码一定会以某种方式减慢查询速度,因为查询的长度为0。
有人可以向我解释为什么会这样吗?
您的第一个if
语句不会运行,因为您检查了vrLoans
和fundingData
的length
,但是它们是mongo游标(对象),而不是实际的数组。
因此,您希望.count()
而不是.length
来检查它们是否为空(或在.fetch()
之后调用.fetch()
find()
以获取普通的js数组)。
https://docs.mongodb.com/manual/reference/method/cursor.count/
(但是,由于这个错误,它似乎无法执行任何操作,因此,大概在更改应用程序的其余部分时必须对其进行了修改。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.