我目前在为下面的文档创建架构时遇到问题。服务器的响应始终将“ 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-part错了):
{ trk: [ [Object], [Object], [Object], [Object], [Object], [Object],
我已经尝试过为“ trk”使用不同的架构定义:
希望你能帮我 ;-)
您可以通过以下方式声明trk:-
trk : [{ lat : String, lng : String }]
要么
trk : { type : Array , "default" : [] }
在第二种情况下,在插入过程中,将对象像下面那样推入数组
db.update({'Searching criteria goes here'}, { $push : { trk : { "lat": 50.3293714, "lng": 6.9389939 } //inserted data is the object to be inserted } });
或者您可以通过设置对象数组
db.update ({'seraching criteria goes here ' }, { $set : { trk : [ { "lat": 50.3293714, "lng": 6.9389939 }, { "lat": 50.3293284, "lng": 6.9389634 } ]//'inserted Array containing the list of object' } });