我在使用 go mongo 操作时遇到问题。
我的代码是这样的:
iter = coll.Find(filter).Sort("-timestamp").Skip(12510).Limit(10).Iter()
for iter.Next(&result){
....
}
我收集了 12520 个文档,但如果我没有在 MongoDB 中设置 timestamp
的索引,则无法使用 iter.Next()
获取值。
如果我设置“timestamp”的索引,这似乎可行,并且我可以获得结果的值(value)。
那么,发生了什么事?
最佳答案
你需要先解码你的数据然后迭代它
这里的 item 是你从 MongoDB 获得的数据结构
if err := iter.Decode(&item); err != nil {
return status.Errorf(
codes.Aborted,
fmt.Sprintln(errormsg.ERR_MSG_DATA_CANT_DECODE, err))
}
然后进行迭代就可以了!!!
关于mongodb - 在集合中没有索引的情况下使用 golang mongo 时无法通过 tier.Next(&result) 获取值,如果索引已设置则获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54684539/