【问题标题】:GeoJSON data saving but returns undefined when queriedGeoJSON 数据保存但查询时返回 undefined
【发布时间】:2023-03-16 15:14:01
【问题描述】:

我有以下架构

    var RaceSchema = new Schema({
    account: {
        _id: String,
    name: String,
    country: String
    },
    raceName:  String,
    raceStartTime: Date,
    timezone: Number,
    trackTimeStart: Date,
    trackTimeFinish: Date,
    sponserImageURL: Array,     
    map: {
        center: Array,
        course: Object,
        zoomLevel: Number
    },
    boats: [{
            _id: String,
            handicaps: [{                   
                                name: String,
                    division: Number,
                    rating: Number,
                    correctedTime: Number,
                    place: Number
                            }]
    }],
    dtg: Number,
    eta: Date,
    finishTime: Date,
    socialMedia: [{
                    name: String,
                    link: String
    }],
    createdAt: { type: Date, default: new Date },
    updatedAt: Date
}, {
    collection: 'race'
});

我使用它来存储 GeoJson 数据以及架构中看到的一些其他信息。我正在以以下格式保存数据(它是我在保存时从服务器获得的响应)

{
    "_id": "562bc48bfde8999f2995e61d",
    "raceStartTime": "2015-10-29T17:48:00.000Z",
    "trackTimeStart": "2015-10-24T17:48:00.000Z",
    "trackTimeFinish": "2015-10-24T17:48:00.000Z",
    "raceName": "Test ",
    "timezone": -4.5,
    "__v": 1,
    "updatedAt": "2015-10-24T17:49:16.912Z",
    "createdAt": "2015-10-24T17:39:45.587Z",
    "socialMedia": [],
    "boats": [{
        "_id": "55f6c2d39a2496d01d000002",
        "handicaps": []
    }],
    "map": {
        "center": [78.4651562, 17.4079808],
        "course": "{\"type\":\"LineString\",\"coordinates\":[[8639830.18113004,2037505.4259696582],[8738281.073561348,1972075.3297575472],[8619650.805662755,1928659.0976915671],[8645333.647166574,1981859.2693780498],[8598248.437742906,2021606.5240863415]]}",
        "zoomLevel": 8
    },
    "sponserImageURL": [],
    "account": {
        "_id": "55a7c944d65763c23d11dd96",
        "name": "Huy Tran"
    },
    "id": "562bc48bfde8999f2995e61d"
}

我将 ma​​p.course 的数据保存为从我的架构中看到的对象,其格式与我从开放层 api 接收的格式相同。我猜这导致我的 findByIdAndRemove(id, callback); 返回一个

TypeError: Cannot read property '562bc2b5fde8999f2995e61c' of undefined

如何解决此问题,以便我可以执行除保存此架构之外的其他操作

【问题讨论】:

    标签: mongodb mongoose schema geojson openlayers-3


    【解决方案1】:

    您似乎将map.course 保存为String(JSON 数据),而不是Object

    如果这是由 ol.format.GeoJSON 创建的 GeoJSON,请考虑使用 writeFeatureObject 而不是 writeFeature。它们返回相同的结果,但第一个是实际的 JS 对象,第二个是带有 JSON 的字符串。

    【讨论】:

    • 谢谢,这是问题的一部分。我也没有正确定义我在路由器中的操作。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 2020-10-12
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多