创建城市时出错 MongooseError:操作 `countries.findOne()` 缓冲在 10000 毫秒后超时

编程入门 行业动态 更新时间:2024-10-07 18:28:13

创建城市时出错 MongooseError:<a href=https://www.elefans.com/category/jswz/34/1770947.html style=操作 `countries.findOne()` 缓冲在 10000 毫秒后超时"/>

创建城市时出错 MongooseError:操作 `countries.findOne()` 缓冲在 10000 毫秒后超时

我正在尝试以编程方式从 csv 文件上传到 mongodb。我已经尝试了所有其他解决方案,并确保我的 ip 已列入白名单并且连接已正确建立。

我仍然收到此错误: 创建城市时出错MongooseError:操作

countries.findOne()
缓冲在10000ms后超时

下面是我的代码,我从命令行运行它。

const csv = require('csv-parser');
const fs = require('fs');

//const geocoder = mbxClient({ accessToken: 'YOUR_ACCESS_TOKEN_HERE' });
const { Country } = require('../models/country');
const { City } = require('../models/city');
const { Overall } = require('../models/overall');
const mbxClient = require("@mapbox/mapbox-sdk/services/geocoding");

const mapboxToken = process.env.MAPBOX_TOKEN;

const geocoder = mbxClient({ accessToken: mapboxToken });

const createCity = async ({ location, country, description, cjLink }) => {
    const creator = '641e6851ad1041163852d500';
    const images = [];
    console.log(country)
   try {
      const geoData = await geocoder
        .forwardGeocode({
          query: location,
          limit: 1,
        })
        .send();
      const geometry = geoData.body.features[0].geometry;
 
      const newCountry = await Country.find({ name: country });
    if (!newCountry) {
      console.log('Country not found');
      return null;
    }


      const city = new City({
        creator,
        location,
        geometry,
        country: newCountry[0]._id,
        url: '',
        cjLink: '',
        description: '',
      });
  
      const overall = new Overall({
        name: location,
        creator,
        location,
        geometry,
        country: newCountry[0]._id,
        url: '',
        cjLink: '',
        description: '',
      });
  
    
  
      overall.url = `/cities/${city._id}`;
      city.url = `/cities/${city._id}`;
      overall.save();
      city.save();
  
      return city;
    } catch (error) {
      console.log("error during create city", error);
      return null;
    }
};

  
const importCitiesFromCSV = async (filePath) => {
    try {
      const csvData = fs.readFileSync(filePath, 'utf-8');
      const rows = csvData.trim().split('\n');
      const headers = rows.shift().split(',');
      const cities = rows.map(row => {
        const values = row.split(',');
        return headers.reduce((obj, header, index) => {
          obj[header] = values[index];
          return obj;
        }, {});
      });
  
      for (let i = 0; i < cities.length; i++) {
        const { location, country, description, cjLink } = cities[i];
        const newCity = await createCity({ location, country, description, cjLink });

        if (newCity) {
          console.log(`Created city: ${newCity.location}`);
        }
      }
  
      console.log('Finished importing cities.');
    } catch (error) {
      console.log('Error importing cities from CSV', error);
    }
  };
  
  

// Example usage:
importCitiesFromCSV('./testData.csv');

下面是csv,只是一些示例数据来测试它:

location,,name,,country,,description,,cjLink “卡尔加里, Alberta,Canada",,Canada,,Canada,,,, "渥太华, 安大略省, 加拿大",,加拿大,,加拿大,,,,

回答如下:

你能分享你连接 mongoDB 的代码吗?问题是您的服务器无法连接到您在

mongoose.connect()
.

中提供的 MongoDB 数据库

我遇到了同样的问题,这些链接帮助了我。我想这些也会对你有所帮助。

  1. https://github/Automattic/mongoose/issues/9732
  2. MongoDB 缓冲
  3. https://dev.to/arunkc/solve-mongooseerror-operation-x-find-buffering-timed-out-after-10000ms-3d3j

更多推荐

创建城市时出错 MongooseError:操作 `countries.findOne()` 缓冲在 10000 毫秒后超时

本文发布于:2024-05-13 15:57:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759970.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:操作   城市   MongooseError   countries   findOne

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!