我编写了一个javascript函数,它将在我的nodejs平台上的mongodb上的db.eval()内执行。
我的js功能是:
<div dx-select-box="vm.account1BoxConfig">
<div data-options="dxTemplate:{ name:'accountItem' }">
<span dx-text-box="{value: 'Mike'}"></span> // not working -- adds text-box to each value
<span>{{::code}}</span>
<small style="margin-left: 5px">[{{::name}}]</small>
</div>
</div>
将其缩小为要传递给db.eval()
的字符串'code'function(data){
var d = {
vehicle_id:data.vehicle_id,
timestamp:{
$gte:data.start_time,
$lte:data.end_time
}
};
var routeStatus = [];
db.location.find(d,function(err,result){
db.result.insert({result});
});
}
info对象包含函数调用的所有必填字段;
现在的主要问题是db.location.find()是一个异步调用,所以我怎么能得到它的结果返回到db.eval()的回调; ?
如果我只是从db.location.find()的回调中返回结果,那么我得不到任何返回,因为它是异步调用。
答案 0 :(得分:0)
得到了答案,感谢@NeilLunn提供了一些小而有用的提示。 .toArray()工作
简单的做法
var docs = db.location.find().toArray();
为我工作。