Node.js 使用坐标geojson保存时间戳
我使用GeoJson将一些带有时间戳的坐标保存到Mongoose数据库中,我定义了如下模型:Node.js 使用坐标geojson保存时间戳,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我使用GeoJson将一些带有时间戳的坐标保存到Mongoose数据库中,我定义了如下模型: var positionSchema = mongoose.Schema({ position: [{ properties: { timeStamp: Date }, geometry: { type: { type: String, default: 'Point' },
var positionSchema = mongoose.Schema({
position: [{
properties: {
timeStamp: Date
},
geometry: {
type: {
type: String,
default: 'Point'
},
coordinates: {
type: [Number]
}
}
}]
position.findByIdAndUpdate(values.geometries, {
$push: {
position: {
properties: request.payload.timeStamp,
geometry: lastLocation
}
}
}
}))
从API发送的数据如下所示:
var positionSchema = mongoose.Schema({
position: [{
properties: {
timeStamp: Date
},
geometry: {
type: {
type: String,
default: 'Point'
},
coordinates: {
type: [Number]
}
}
}]
position.findByIdAndUpdate(values.geometries, {
$push: {
position: {
properties: request.payload.timeStamp,
geometry: lastLocation
}
}
}
其中最后位置为:
lastLocation = {
type: 'Point',
coordinates: [
request.payload.position.longitude,
request.payload.position.latitude
]
};
当我向路线发送邮件时,坐标已正确保存,但时间戳未保存在文档中。在此代码中:
position.findByIdAndUpdate(values.geometries, {
$push: {
position: {
properties: request.payload.timeStamp,
geometry: lastLocation
}
}
}
您正在为属性
推送日期,而日期值实际位于属性。时间戳
所以你可以用这个来代替
position.findByIdAndUpdate(values.geometries, {
$push: {
position: {
'properties.timeStamp': request.payload.timeStamp,
geometry: lastLocation
}
}
}
非常感谢@jtmarmon,我已经避开了这个细节。效果很好。