2017-07-27 47 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); 
    } 
);