Heim > Artikel > Backend-Entwicklung > Mongodb-Zeitreihe / Golang -
PHP-Editor Zimo bringt Ihnen eine Einführung in „Mongodb Time Series / Golang –“. Mongodb ist eine nicht relationale Datenbank, während Golang eine effiziente Programmiersprache ist. Im Hinblick auf die Verarbeitung von Zeitreihendaten kann die Kombination von Mongodb und Golang leistungsstarke Funktionalität und Leistung bieten. In diesem Artikel wird detailliert beschrieben, wie Sie mit Mongodb und Golang Zeitreihendaten verarbeiten, einschließlich Datenspeicherung, Abfrage und Analyse. Unabhängig davon, ob Sie Anfänger oder erfahrener Entwickler sind, hilft Ihnen dieser Artikel dabei, die Vorteile und Techniken von Mongodb und Golang bei der Verarbeitung von Zeitreihendaten besser zu verstehen und anzuwenden.
Ich habe den folgenden Beispiel-Go-Code, der Daten aus einer Restanforderung (Gin) in Mongodb einfügt, aber es schlägt fehl:
['timestamp' must be present and contain a valid bson utc datetime value]
Code:
func CreateDevicesReadings(c *gin.Context) { var devicesReadings DevicesReadings c.BindJSON(&devicesReadings) // Connect to MongoDB client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { c.JSON(500, gin.H{ "message": "Internal Server Error. Could not connect to the database.", }) log.Default().Println(err) } collection := client.Database("florly").Collection("devicesReadings") ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) // Set timestamp to the current time at the moment of the request for i := 0; i < len(devicesReadings.DevicesReadings); i++ { devicesReadings.DevicesReadings[i].Timestamp = time.Now().UTC() } _, err = collection.InsertOne(ctx, devicesReadings) if err != nil { c.JSON(500, gin.H{ "message": "Internal Server Error. Could not insert the data into the database.", }) log.Default().Println(err) } else { log.Default().Println("Data inserted successfully.") } client.Disconnect(context.Background()) } type DeviceReadings struct { ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` Alias string `json:"alias" bson:"alias"` Timestamp time.Time `json:"timestamp,omitempty" bson:"timestamp"` SystemReadings SystemReadings `json:"systemReadings" bson:"systemReadings"` SensorReadings SensorReadings `json:"sensorsReadings" bson:"sensorsReadings"` }
Was habe ich falsch gemacht? Ich denke, dass Mongodb den gesamten Prozess der Konvertierung des Typs time.time
in den Typ übernimmt, nach dem Mongodb sucht. time.time
类型转换为 mongodb 查找的类型的整个过程。
您调用 Collection.InsertOne()
,可用于插入单个文档。然而,devicesReadings
Collection.InsertOne()
,要么使用 Collection.InsertMany()
Sie rufen Collection.InsertOne()
auf, kann zum Einfügen eines einzelnen Dokuments verwendet werden. devicesReadings
ist jedoch Teil mehrerer Dokumente.
Das obige ist der detaillierte Inhalt vonMongodb-Zeitreihe / Golang -. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!