我完成了 mgo homepage 上的示例,但我正在努力寻找一种方法来查询一系列值。线路:
searchResults, searchErr = SearchReading(bson.M{"k": key, "t": { $gte: start, $lte: end } }, limit)
失败:
line67: 语法错误:意外 $
line67: 复合文字中缺少类型
我省略了一些非必要的代码...
type Reading struct {
K string "k"
T int64 "t"
V float64 "v"
}
func SearchReading(q interface{}, limit int) (searchResults []Reading, searchErr string) {
searchErr = ""
searchResults = []Reading{}
query := func(c *mgo.Collection) error {
fn := c.Find(q).Limit(limit).All(&searchResults)
if limit < 0 {
fn = c.Find(q).All(&searchResults)
}
return fn
}
search := func() error {
return withCollection("reading", query)
}
err := search()
if err != nil {
searchErr = "Database Error"
}
return
}
func GetReadingsForKey(key string, start int64, end int64, limit int) (searchResults []Reading, searchErr string) {
searchResults, searchErr = SearchReading(bson.M{"k": key, "t": { $gte: start, $lte: end } }, limit)
return
}
最佳答案
行:
searchResults, searchErr = SearchReading(bson.M{"k": key, "t": { $gte: start, $lte: end } }, limit)
需要改成:
searchResults, searchErr = SearchReading(bson.M{"k": key, "t": bson.M{"$gte": start, "$lte": end}}, limit)
关于mongodb - 使用 golang 和 mgo,如何在 MongoDB 中搜索一系列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158335/