在GeoJson中推动NaN

我已将csv文件转换为json数组,并希望以geojson形式将其上传到mongodb,这是我的模式

const postSchema = mongoose.Schema({
  INDIRIZZO: String,location: {
    type: {
      type: String,enum: ['Point'],required: true
    },coordinates: {
      type: [Number],required: true
    }
  }

});


module.exports = mongoose.model('Post',postSchema);

这是通过json数组上传它的过程

let json = csvToJson.formatvalueByType().getJsonFromCsv('file.csv');

for (let i = 2; i < json.length; i++) {
    var post = new Post({

        INDIRIZZO: json[i].INDIRIZZO,location: {
            type: "Point",coordinates: [
               parseFloat(json[i].LATITUDINE),parseFloat(json[i].LONGITUDINE),]
        }
    })
    post.save();
}

现在的问题是,在此json数组的某些索引处缺少一些经度和纬度,因此没有任何内容上传到mongodb,错误是

(node:10472) UnhandledPromiseRejectionWarning: ValidationError: Post validation failed: location.coordinates: Cast to Array failed for value "[ NaN,NaN ]" at path 
"location.coordinates"

感谢您的提前建议

ygp47 回答:在GeoJson中推动NaN

使用此约定已解决问题

let json = csvToJson.formatValueByType().getJsonFromCsv('file.csv');

for (let i = 2; i < json.length; i++) {
    if (!parseFloat(json[i].LATITUDINE) || !parseFloat(json[i].LONGITUDINE)) {
        var post = new Post({

            INDIRIZZO: json[i].INDIRIZZO,location: {
                type: "Point",coordinates: []
            }
        })
        post.save();
    } else {
        var post = new Post({

            INDIRIZZO: json[i].INDIRIZZO,coordinates:
                    [parseFloat(json[i].LATITUDINE),parseFloat(json[i].LONGITUDINE),]
            }

        })
        post.save();
    }
}
本文链接:https://www.f2er.com/3082691.html

大家都在问