首页 > 解决方案 > 如何使用 Golang 在 MongoDB 中插入日期?

问题描述

我有一个具有以下格式的结构。我正在尝试InvDt在 MongoDB 中插入日期。我的日期在表格中2020-09-25

type Statement struct {
  InvDt string `bson:"invoice_date,omitempty" json:"invoice_date,omitempty"`
}

插入代码写成:

interfaceStmts := []interface{}{}
for _, s := range stmts {
    interfaceStmts = append(interfaceStmts, s)
}
testCollection.InsertMany(ctx, interfaceStmts)

这当前作为字符串插入。如何使它作为日期插入?

标签: mongodbgo

解决方案


这样做的方法是首先将 转换Stringtime.Time类型,然后使用primitive库中的转换器将其转换为DateTime对象。

import (
    "time"
    "go.mongodb.org/mongo-driver/bson/primitive"
)

type Statement struct {
  InvDt primitive.DateTime `bson:"invoice_date,omitempty" json:"invoice_date,omitempty"`
}

func main() {
    const shortForm =  "2006-01-02"
    dt, _ := time.Parse(shortForm, "2020-09-29")
    stmt.InvDt = primitive.NewDateTimeFromTime(dt)
}

推荐阅读