2017-12-18 246 views
2

如何忽略查询中time字段的默认值?
因为他们在0001-01-01 00:00:00 +0000 UTC设置,我无法找到合适的文档如何使用自定义结构在mongo中搜索?

// 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

回答

3

time.Time是一个结构类型,其zero值是一个有效时间值,不被视为“空”。因此,如果您需要区分zero和空值,请使用指向它的指针time.Time,即*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

相关问题