Javascript 使用mongoose在mongoDB中存储可查询的GeoJson
因此,我试图能够查询到我的数据库,查找大型GeoJson文件的指定部分。原始文件的格式如下:Javascript 使用mongoose在mongoDB中存储可查询的GeoJson,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,因此,我试图能够查询到我的数据库,查找大型GeoJson文件的指定部分。原始文件的格式如下: { "type": "FeatureCollection", "features": [{ "type": "Feature", "properties": { "GEO_ID": "xxxxdhuxxx", "STATE": "01", "CO
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"GEO_ID": "xxxxdhuxxx",
"STATE": "01",
"COUNTY": "029",
"NAME": "Cleburne",
"LSAD": "County",
"CENSUSAREA": 560.100000
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[-85.388717, 33.913044],
[-85.380885, 33.873508]
]
]
}
},
{
"type": "Feature",
"properties": {
"GEO_ID": "xxxxuiuyxxx",
"STATE": "01",
"COUNTY": "031",
"NAME": "Coffee",
"LSAD": "County",
"CENSUSAREA": 678.972000
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[-86.030441, 31.618939],
[-86.004085, 31.619067],
[-85.999948, 31.619311],
[-85.980098, 31.619189],
[-85.926702, 31.618966],
[-86.030441, 31.618939]
]
]
}
}
]
}
我当前的Mongoose模式是一个嵌套模式,其形式如下:
GeoJson.model.js
`var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Features = require('./Feature.model.js')
//Example schema with possible input types.
var GeoJsonSchema = new Schema({
"type": { "type": String },
"features": [Features]
});`
和Feature.model.js
`var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var FeatureSchema = new Schema({
"type": { "type": String},
"properties": {
"GEO_ID": String,
"STATE": String,
"COUNTY": String,
"NAME": String,
"LSAD": String,
"CENSUSAREA": Number
},
"geometry": {
"type": { "type": String },
"coordinates": []
}
});
module.exports = mongoose.model('Feature', FeatureSchema);`
我不断得到验证错误,所以有些东西是错误的,但我就是不能发现它。有什么想法吗?手册中列出了所有支持的类型<代码>功能集合不在支持的类型中。您可以使用
GeometryCollection
,或者只是将这些文档建模为普通MongoDB集合中的单个文档。相关:带有两个点的多边形看起来可疑。格式化的json更容易阅读。