我需要创建一个Mongodb计数对象的大型二维数组。目前我有一个for循环来进行所有查询,然后我尝试使用Promise.then函数插入到数组中,但所有值都插入到最后一行,因为Promise.then使用索引状态at Promise完成的时间,而不是它被召唤的时间。因为它是一个2D数组,所以我不能只使用Array.push。修复此问题的一种方法是在调用时将值传递给Promise.then,但我没有看到这样做的方法。
这是我尝试的其中一件事的代码示例:
for(var x = startVal; x < endVal; x += stepSize) {
array[i] = [x];
db.collection('collection').find({fieldA: {$gt: x}).count().then(function(val) {array[i][1] = val;});
db.collection('collection').find({fieldB: {$gt: x}).count().then(function(val) {array[i][2] = val;});
i++;
}