我正在尝试查询两个其他时间戳之间的时间戳。我有这个简单的功能:
func (e *EventService) GetEmployeeEventsBetween(employeeID string, start, end int64) ([]Event, error) {
var retrivedEvents []Event
if err := e.c().Find(bson.M{
"employee": employeeID,
"start": bson.M{"$gte": start, "$lte": end},
}).All(&retrivedEvents); err != nil {
return nil, err
}
return retrivedEvents, nil
}
现在根据该函数,查询应该只返回"events"
开始日期时间戳大于传入的start
时间戳并且小于传递的end
时间戳。
但是,假设db有3个事件,每个事件都有这些开始日期:
1474290000
1474389000
1474463700
现在我可以说我传递了start
的{{1}}参数和1474462800
end
参数我希望该函数只能返回1 1474491600
将是具有"event"
时间戳的那个,但它会返回所有这些。几乎无论我传入的是1474463700
和start
参数,它都会返回db中的所有项目
更新:
如果我记录end
这就是我的回复
.Explain()