当前位置: 首页 > 面试题库 >

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

廉志强
2023-03-14
问题内容

我在mgo主页上浏览了该示例,但是我一直在努力寻找一种查询一系列值的方法。该行:
searchResults, searchErr = SearchReading(bson.M{"k": key, "t": { $gte: start, $lte: end } }, limit)
失败,带有:
line67: syntax error: unexpected $
line67: missing type in composite literal

我省去了不必要的代码…

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)


 类似资料:
  • 问题内容: 我读过多个有关使用mgo保存文件的博客,但找不到满足特定需求的解决方案,请大声喊叫! 下面在MongoDb中插入对象: 下面能够保存文件: 现在,在插入对象之前,我需要将上述文件设置为: 我的结构对象: 用外行术语来说,问题是:如何使用mgo驱动程序通过GoLang结构在mongoDb中插入文件(从HTML表单接收)? 谢谢阅读!:) 更新: PDF存储在MongoDB中,如下所示:

  • 问题内容: 我目前正在尝试在mongodb内部的文档数组中提取单个对象。这是一个样本数据集: 我可以在mongo中使用以下命令成功查询: 我无法使用mgo进行相同操作,并尝试了以下操作: 使用嵌套(抛出:合成文字中缺少类型,地图文字中缺少键) 我正在使用httprouter,p.ByName(“ …”)调用是传递给处理程序的参数。 提前致谢。 问题答案: 将与该 方法一起使用,因为doc指出,这使

  • 问题内容: 我正在尝试在名为“ abc”的字段中搜索“ efg” c是Collection对象。我没有任何结果。我究竟做错了什么? 问题答案: 您正在生成,但查询应如下所示: 因此,尝试将代码更新为: 请记住,要使用搜索,您需要指定一个索引。查阅说明如何使用该文档的文档:http : //docs.mongodb.org/manual/reference/operator/query/text/

  • 我读了这篇文章,看到了如何在MongoDB中搜索记录的名字: http://docs.mongodb.org/manual/reference/sql-comparise/ 但是,如果我的字符串有两个单词(即firstname和lastname),我如何搜索firstname和lastname。 在MySQL中,我正在使用: 其中数据包含“Mike Thompson”。

  • 问题内容: 我有一个与我正在使用的MongoDB集合类型匹配的结构: 我希望LastSeen字段保存与该特定应用程序的最后一次交互的时间。因此,应用程序会自行注册以设置当前时间(以字符串形式)。 我想要的是Mongo在插入时动态地将自己的当前时间设置到该字段中,就像MySQL的NOW()函数一样。 我有这个辅助功能: 我尝试了这个: LastSeen字段存储为脚本而不是评估: 因此,我认为存在一些

  • 问题内容: 有人知道我们在mongodb shell中对golang mgo / bson使用的聚合命令等效吗? 像这样: 问题答案: 假设这是您的收藏夹: GoDoc参考: Collection.Pipe文档 管道及其方法