我正在尝试将地理空间数组保存到架构中。这是我的架构(我使用的是 Moongose + Express + NodeJS):
var Route = new schema({
route: String,
time: Number,
distance: Number,
geo: {type: [Number], index: '2d'},
created: { type: Date, default: Date.now }
}, {collection: 'route'});
var routeModel = mongoose.model('Route', Route);
这是我发送以填充该模式的实例的数据示例:
{
distance: 6.899893863658173,
geo:[ [13.695901, -89.24937], [13.706500876975248, -89.24967010761316],
[13.711430396814366, -89.2561502488519] ],
route: "Running route",
time: 31
}
第一个菜鸟问题是:有可能做我正在做的事情吗?在地理中发送数组数组?
这是我保存数据的方式:
socket.on('new_route', function (data){
var route = new routeModel();
route.route = data.route;
route.time = data.time;
route.distance = data.distance;
route.geo = data.geo;
route.save(function(err) {
if (err) throw err;
socket.emit("route_saved", {mensaje: "Well done!"});
app.listen(8080);
});
});
如果我在地理上发送并清空数组,一切正常。但是,我收到以下错误
"Cast to number failed for "13.695901, -89.24937, 13.706500876975248, -89.24967010761316..." at path "geo".
每当我在“geo”上发送一个数组(如上面发布的)时。
所以第二个问题,关于为什么我的阵列像一根大绳子一样受到威胁的任何想法?