MongoDB 和 Mongoose 中边界框的数据类型?
Data type for bounding box in MongoDB and Mongoose?
我正在考虑在 MongoDB 中存储一个条目,该条目引用一条路线,该路线存储在一个外部文件中,但在数据库中具有该路线的边界框。我不确定我是否应该为此使用多边形或者是否有更好的数据类型?需要考虑的主要事情是这将用于搜索。例如,路线是区域的搜索。起点和终点是不够的,因为它们不一定代表范围(例如,一条轨道可以在它开始的地方结束)。
我正在使用 mongoose and mongoose-geojson-schema
到目前为止,我有类似的东西:
const mongoose = require('mongoose');
const mongooseGeoJSON = require('mongoose-geojson-schema');
const hikeSchema = mongoose.Schema({
title: String,
description: String,
when: Date,
startPoint: mongoose.Schema.Types.Point,
endPoint: mongoose.Schema.Types.Point,
boundingBox: //Not sure?
});
update: 现在我只打算使用多边形类型,没有更好的建议。
请注意,如果您最终来到这里,这就是我使用的 (mongoose 3.6) - 仍在使用多边形,但我怀疑这是正确的方式:
Place.where('location').intersects().geometry({
type: "Polygon",
coordinates: [[
[ minLongitude, minLatitude ],
[ minLongitude, maxLatitude ],
[ maxLongitude, maxLatitude ],
[ maxLongitude, minLatitude ],
[ minLongitude, minLatitude ]
]]
}).exec()
我正在考虑在 MongoDB 中存储一个条目,该条目引用一条路线,该路线存储在一个外部文件中,但在数据库中具有该路线的边界框。我不确定我是否应该为此使用多边形或者是否有更好的数据类型?需要考虑的主要事情是这将用于搜索。例如,路线是区域的搜索。起点和终点是不够的,因为它们不一定代表范围(例如,一条轨道可以在它开始的地方结束)。
我正在使用 mongoose and mongoose-geojson-schema
到目前为止,我有类似的东西:
const mongoose = require('mongoose');
const mongooseGeoJSON = require('mongoose-geojson-schema');
const hikeSchema = mongoose.Schema({
title: String,
description: String,
when: Date,
startPoint: mongoose.Schema.Types.Point,
endPoint: mongoose.Schema.Types.Point,
boundingBox: //Not sure?
});
update: 现在我只打算使用多边形类型,没有更好的建议。
请注意,如果您最终来到这里,这就是我使用的 (mongoose 3.6) - 仍在使用多边形,但我怀疑这是正确的方式:
Place.where('location').intersects().geometry({
type: "Polygon",
coordinates: [[
[ minLongitude, minLatitude ],
[ minLongitude, maxLatitude ],
[ maxLongitude, maxLatitude ],
[ maxLongitude, minLatitude ],
[ minLongitude, minLatitude ]
]]
}).exec()