我的 MongoDB 數(shù)據(jù)庫中有以下 go 結(jié)構(gòu):type Station struct { ID bson.ObjectId `bson:"_id" json:"id"` Name string `bson:"name" json:"name"` Sensors []Sensor `bson:"sensors" json:"sensors"`}type Sensor struct { ID bson.ObjectId `bson:"_id" json:"id"` Type string ` bson:"type" json:"type"` Value float64 `bson:"value" json:"value"`}當(dāng)我在端點(diǎn)發(fā)出 POST 請求時localhost:3000/stations/<IDofTheStation/sensors,它應(yīng)該向指定站添加一個新傳感器。目前我有這段代碼func AddSensorToStation(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() params := mux.Vars(r) station, err := dao.FindById(params["id"]) if err != nil { respondWithError(w, http.StatusBadRequest, "Invalid Station ID") return } sensor := Sensor{Type: "test"} station.Sensors = append(station.Sensors, sensor) if err := dao.Update(station); err != nil { respondWithError(w, http.StatusInternalServerError, err.Error()) return } respondWithJson(w, http.StatusOK, station)}問題是它不會為我要添加的新傳感器自動生成 ID,因此會拋出錯誤“ ObjectIDs 必須恰好 12 個字節(jié)長(得到 0) ”將新的 Sensor 實(shí)例附加到數(shù)據(jù)庫為傳感器生成 id 的 Sensors 數(shù)組的最佳方法是什么?
將新的子文檔附加到主結(jié)構(gòu)中的數(shù)組
阿波羅的戰(zhàn)車
2023-04-24 16:53:27