Maison > Article > développement back-end > Série chronologique Mongodb / Golang -
L'éditeur PHP Zimo vous propose une introduction à "Mongodb Time Series / Golang -". Mongodb est une base de données non relationnelle, tandis que Golang est un langage de programmation efficace. En termes de traitement de données de séries chronologiques, la combinaison de Mongodb et Golang peut fournir des fonctionnalités et des performances puissantes. Cet article présentera en détail comment utiliser Mongodb et Golang pour traiter les données de séries chronologiques, y compris le stockage, les requêtes et l'analyse des données. Que vous soyez débutant ou développeur expérimenté, cet article vous aidera à mieux comprendre et appliquer les avantages et les techniques de Mongodb et Golang dans le traitement des données de séries chronologiques.
J'ai l'exemple de code go suivant qui insère les données d'une requête de repos (gin) dans mongodb mais il échoue :
['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"` }
Qu'est-ce que j'ai fait de mal ? Je pense que mongodb effectue tout le processus de conversion du type time.time
en type recherché par mongodb. time.time
类型转换为 mongodb 查找的类型的整个过程。
您调用 Collection.InsertOne()
,可用于插入单个文档。然而,devicesReadings
Collection.InsertOne()
,要么使用 Collection.InsertMany()
Vous appelez Collection.InsertOne()
, peut être utilisé pour insérer un seul document. Cependant, devicesReadings
fait partie de plusieurs documents.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!