nodejs中mongodb数据库如何循环查询?

新手上路,请多包涵
var mongoose = require('mongoose'); 
require('../../models/new'); 
var New= mongoose.model('New');
var async = require('async');

const data0 = ['北京', '天津', '上海', '重庆', '河北', '河南', '云南']
exports.mapdata = function (req, res) {
  try {
    // start(req, res)
    run(req, res)
  } catch (e) {
    res.status(402).json({ "function error": e.message })
  }
}
function run(req, res) {
  let mapdata = {}
  const list = []
  async.mapSeries(data0, function (item, callback) {
    // console.log('1.3 enter: ' + item);
    setTimeout(function () {
      // console.log('1.3 handle: ' + item);
      New.find({ 'properties.地区': item, 'properties.类型': '娱乐新闻' }).count()
        .then(function (values1) {
          New.find({ 'properties.地区': item, 'properties.类型': '实时新闻' }).count()
            .then(function (values2) {
              mapdata ['name'] = item
              mapdata ['value1'] = values1
              mapdata ['value2'] = values2
              mapdata ['value'] = values1 + values2
              list.push(mapdata )
              console.log(list)
              callback(null, list);
            })
            console.log(list)
        })
        console.log(list)
    }, 0);
  }, function (err, results) {
    // console.log('1.3 err: ', err);
    // console.log('1.3 results: ', results);
  });
}

以上为文件中的代码,使用nodejs+express,数据库使用mongodb

现在需要循环查询然后返回给前端,但是出来的结果基本上是数组中的最后一个地区

如下:
图片描述

新手小白一个,求请教

阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题