蒙哥:4.4 去:1.17.3我正在尝试获取字符串字段值超过四个符号的文档。这是我在 mongo 的 shell 中使用的查询:db.player.find({ "name": { "$exists": true }, "$expr": { "$gt": [ { "$strLenCP": "$name" }, 4 ] } })这是相同的查询,但编码为bsonfilter in go:longName := bson.M{ "name": bson.M{"$exists": true}, "$expr": bson.M{ "$gt": bson.A{ bson.M{"$strLenCP": "$name"}, 4, }, },}fmc, err := collection.Find(context.TODO(), longName)if err != nil { log.Panic(err)}var longBoi models.Playererr = fmc.Decode(&longBoi)if err != nil { log.Panic(err) // panic here: // 2021/12/15 15:53:46 EOF // panic: EOF}第一个将输出字符串字段值长度大于某个数字的所需文档。第二个将与 just EOF、 timestamp 和 callstack 错误。调试器说batch内部游标fmc不包含数据。第二种情况有什么问题?
1 回答
大话西游666
TA贡献1817条经验 获得超14个赞
以下解决了该问题:
var longBoi []models.Player
err = fmc.All(context.TODO(), &longBoi)
if err != nil {
log.Panic(err)
}
Find()返回Cursor(),而不是文档。然后可以使用游标通过调用All()或其他方法迭代匹配过滤器的文档。
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消