PowerEngine/wave_record/database/mongodb_store.go

32 lines
890 B
Go

package database
import (
"context"
"time"
"github.com/yonwoo9/go-comtrade"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)
// StorageComtradeIntoMongoDB return the result of storing comtrade data into mongoDB
func StorageComtradeIntoMongoDB(ctx context.Context, comtradeData *comtrade.Comtrade, dbName string, client *mongo.Client, logger *zap.Logger) error {
collection := client.Database(dbName).Collection(comtradeData.Conf.StationName)
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
comtradeBson, err := bson.Marshal(comtradeData)
if err != nil {
logger.Error("bson marshal comtrade data failed", zap.Error(err))
return err
}
_, err = collection.InsertOne(ctx, comtradeBson)
if err != nil {
logger.Error("insert comtrade data into mongoDB failed", zap.Error(err))
return err
}
return nil
}