使用坐标 geojson 保存时间戳

Saving timeStamp with coordinates geojson

我正在使用 GeoJson 将一些带有时间戳的坐标保存到 Mongoose 数据库中,我这样定义模型:

var positionSchema = mongoose.Schema({
position: [{
    properties: {
        timeStamp: Date
    },
    geometry: {
        type: {
            type: String,
            default: 'Point'
        },
        coordinates: {
            type: [Number]
        }
    }
}]

});

并且数据是从 API 像这样发送的:

 position.findByIdAndUpdate(values.geometries, {
                  $push: {
                    position: {
                      properties: request.payload.timeStamp,
                      geometry: lastLocation
                    }
                  }
                }

lastLocation 所在的位置:

lastLocation = {
                    type: 'Point',
                    coordinates: [
                      request.payload.position.longitude,
                      request.payload.position.latitude
                    ]
                  };

当我对路线进行 post 时,坐标会正确保存,但时间戳不会保存在文档中。

在此代码中:

position.findByIdAndUpdate(values.geometries, {
                  $push: {
                    position: {
                      properties: request.payload.timeStamp,
                      geometry: lastLocation
                    }
                  }
                }

您正在推送 properties 的日期,而日期值实际位于 properties.timeStamp

所以你可以改用这个

position.findByIdAndUpdate(values.geometries, {
                  $push: {
                    position: {
                      'properties.timeStamp': request.payload.timeStamp,
                      geometry: lastLocation
                    }
                  }
                }