如何使用自定义结构在mongo中搜索?

时间:2017-12-18 13:11:39

标签: mongodb go struct default-value

如何忽略查询中time字段的默认值?
因为它们是在0001-01-01 00:00:00 +0000 UTC中设置的,所以我找不到合适的文档

// User model
type User struct {
    Mail      string        `json:"mail" bson:"mail,omitempty"`
    Password  string        `json:"password" bson:"password,omitempty"`
    CreatedAt time.Time     `json:"created_at" bson:"created_at,omitempty"`
    UpdatedAt time.Time     `json:"updated_at" bson:"updated_at,omitempty"`
}

示例https://play.golang.org/p/P2P30PPtl0

1 个答案:

答案 0 :(得分:4)

time.Time是结构类型,其zero值是有效时间值,不被视为“空”。因此,对于time.Time,如果您需要区分zero和空值,请使用指向它的指针,即*time.Timenil指针值将是值,任何非nil指针值将表示非空时间值。

type User struct {
    Mail      string     `json:"mail" bson:"mail,omitempty"`
    Password  string     `json:"password" bson:"password,omitempty"`
    CreatedAt *time.Time `json:"created_at" bson:"created_at,omitempty"`
    UpdatedAt *time.Time `json:"updated_at" bson:"updated_at,omitempty"`
}

请参阅相关问题:Golang JSON omitempty With time.Time Field