MGO:无法规范化查询:BadValue 未知运算符:$meta

MGO : Can't canonicalize query: BadValue unknown operator: $meta

我正在使用 MGO 与 mongodb 进行通信。 我想在一个集合中搜索,并按搜索分数对结果进行排序。

collection.Find(bson.M{
    "$text": bson.M{"$search": "mysearch"},
    "score": bson.M{"$meta": "textScore"},
})

但是我得到这个错误:

Can't canonicalize query: BadValue unknown operator: $meta (status code : 500)

当我只尝试使用 $text 时,它起作用了。

我使用与此处相同的 bson 结构: MongoDB - Can't canonicalize query: BadValue unknown operator: $meta

谢谢

这里的问题是您使用 BSON "map" 作为参数,"projection" 作为 "query" 的一部分。而是在投影链接中使用 .Select() 方法:

collection.Find(
    bson.M{ "$text": bson.M{ "$search": "mysearch" } }
).Select( 
    bson.M{ "score": bson.M{ "$meta": "textScore" } }
)

就像在标准 API 示例中一样,"query" 和 "projection" 部分彼此 "separated"。