无法通过层获取值。Next(&result) 当在集合中使用没有索引的 golang mongo 时,如果索引已设置,则获取值



我在使用Mongo操作时会收到一个问题。

我的代码就是这样:

iter = coll.Find(filter).Sort("-timestamp").Skip(12510).Limit(10).Iter()
for iter.Next(&result){
    ....
}

我在集合中有12520个文档,但如果我没有在mongodb中设置 timestamp的索引,则无法获得iter.Next()的值。如果我设置了"时间戳"的索引,则似乎有效,并且可以在结果中获得价值。

那么,发生了什么事?

您需要先解码数据,然后迭代

这是您从MongoDB获得的数据结构

if err := iter.Decode(&item); err != nil {
return status.Errorf(
codes.Aborted,
fmt.Sprintln(errormsg.ERR_MSG_DATA_CANT_DECODE, err))
}

然后进行迭代,它将有效!!!

最新更新