我目前在为下面的文档创建架构时遇到问题 . 来自服务器的响应始终将“trk”字段值作为[Object]返回 . 不知怎的,我不知道这应该如何工作,因为我至少尝试了对我有意义的所有方法;-)
如果这有帮助,我的Mongoose版本是3.6.20和MongoDB 2.4.7在我忘记之前,将它设置为Index(2d)会很不错
原始数据:
{
"_id": ObjectId("51ec4ac3eb7f7c701b000000"),
"gpx": {
"metadata": {
"desc": "Nürburgring VLN-Variante",
"country": "de",
"isActive": true
},
"trk": [
{
"lat": 50.3299594,
"lng": 6.9393006
},
{
"lat": 50.3295046,
"lng": 6.9390688
},
{
"lat": 50.3293714,
"lng": 6.9389939
},
{
"lat": 50.3293284,
"lng": 6.9389634
}]
}
}
猫鼬模式:
var TrackSchema = Schema({
_id: Schema.ObjectId,
gpx: {
metadata: {
desc: String,
country: String,
isActive: Boolean
},
trk: [{lat:Number, lng:Number}]
}
}, { collection: "tracks" });
Chrome中“网络”标签的响应总是如此(这只是错误的trk部分):
{ trk:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
我已经为“trk”尝试了不同的Schema定义:
-
trk:Schema.Types.Mixed
-
trk:[Schema.Types.Mixed]
-
trk:[{type:[Number],index:"2d"}]
希望你能帮我 ;-)
3 回答
您可以通过以下方式声明trk: - 或者
要么
trk : { type : Array , "default" : [] }
在插入过程中的第二种情况下,制作对象并将其推入阵列中
或者您可以设置对象数组
我和猫鼬有类似的问题:
实际上,我在我的架构中使用“type”作为属性名称:
要避免这种行为,您必须将参数更改为:
谢谢你的回复 .
我尝试了第一种方法,但没有改变 . 然后,我试着记录结果 . 我只是逐级钻取,直到我终于到达数据显示的位置 .
过了一会儿我发现了问题:当我发送响应时,我通过
.toString()
将其转换为字符串 .我修好了,现在它的工作非常出色 . 对不起,误报了 .