mongodb - 使用 golang 和 mgo,如何在 MongoDB 中搜索一系列值?

标签 mongodb go mongodb-query mgo

我完成了 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/

相关文章:

node.js - 将整个原始文档置于新的属性名称下

java - 在 Java 中使用 MongoDB 中的日期范围进行查询

python - Mongoengine ...查询不在 ListField 中的内容?

php - 计算数组 mongo PHP 中值的数量

amazon-web-services - 在 Go 中测试 lambda 处理程序时如何模拟 AWS Lambda 上下文?

go - 使用 Go 获取可用磁盘空间量

string - golang 在编译时删除常量字符串中的字符(用于可读性)(空格,\n 和\t)

mongodb - 如何获得 MongoDB 集合中的最低值?

java - Java 中的 Mongo Shell 查询

mongodb - MongoDB 2.4 和 2.6 之间的多边形几何图形在 $not $geoWithin 中的不同语义