2017-07-27 49 views
-2

您好我有多维MongoDB的文档现在我要推新的记录与相同的对象时,LAT提交的位置,LNG推送数据多维MongoDB的文档

这里是我的数据库记录

{ 
    "_id" : ObjectId("5979b1a81c4547652583397e"), 
    "shenase" : "002", 
    "name" : "??? ?????", 
    "vehicle" : "?????", 
    "locations" : { 
     "time" : "2017-07-27 13:55:30", 
     "latiude" : 35.7429305, 
     "langtiude" : 51.5001943 
    } 
} 

我想知道我该怎么做,结点js

+0

'“位置”'必须以存储多个对象“阵列”。目前不是。由于存在特定的[GeoJSON格式](https://docs.mongodb.com/),因此您也不应该使用诸如''latitude'''和''langitude'''这实际上是“经度”手册/参考/ geojson /)你应该“跟随”。即便如此,如果您打算对其进行地理空间查询,则最好将位置数据放入数组中。这是可能的,但不是一个好主意。 –

回答

0

首先你的数据库模式是不正确的。位置必须是数组而不是对象。因此,记录必须

{ 
    "_id" : ObjectId("5979b1a81c4547652583397e"), 
    "shenase" : "002", 
    "name" : "??? ?????", 
    "vehicle" : "?????", 
    "locations" : [ 
    "time" : "2017-07-27 13:55:30", 
    "latiude" : 35.7429305, 
    "langtiude" : 51.5001943 
    ] 
} 

现在推新记录到数组可以简单的写

var data = { 
    "time":"2017-07-29 13:55:30", 
    "latitude": 18.0667, 
    "longitude": 45.99890 
}; 

YourModel.update(
    { _id: toBeUpdated._id }, 
    { $push: { location: data } }, 
    function(err,data){ 
     console.log(err,data); 
    } 
);