首页 > 解决方案 > 如何使用 golang 在查询 mongodb 中验证时间

问题描述

在这里,我正在构建一个查询以从数据库中获取预订,并且正在对其进行查询,但是根据条件我想构建一个查询并在时间字段上设置一个条件,如果时间不等于并且小于那么零,那么它将与查询条件连接,否则不会。以下是我正在使用的条件,我想验证时间:-

mongoSession := ConnectDb()
defer mongoSession.Close()
sessionCopy := mongoSession.Copy()
defer sessionCopy.Close()
getCollection := sessionCopy.DB(Database).C(Collection) 
condition := bson.M{
    "status":           1,
    "category": bson.M{"$in": services},
    "method":   bson.M{"$in": value},
    "date":     date,
    "location": loc,
    "end_time":         bson.M{"$lte": currTime},
} 

我想end_time通过以下方式验证:-

if currTime > 0{
   "end_time":bson.M{"$lte": currTime},
}
// Something like that

谁能告诉我我将如何执行此操作?

标签: mongodbgo

解决方案


你像这样使用地图: -

condition := make(map[string]interface{})
condition["status"] = 1
condition["category"] = bson.M{"$in": services}
condition["method"] = bson.M{"$in": value}
condition["date"] = date
condition["location"] = loc
if currTime > 0 {
    condition["end_time"] = bson.M{"$lte": currTime}
}

并在查询中传递条件


推荐阅读