Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用坐标geojson保存时间戳_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 使用坐标geojson保存时间戳

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' },

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

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,我已经避开了这个细节。效果很好。