我正在使用 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 - 无法规范化查询:BadValue 未知运算符:$meta
Thanks
这里的问题是您使用 BSON“地图”作为参数,并将“投影”作为“查询”的一部分。相反,使用.Select()投影链接方法:
collection.Find(
bson.M{ "$text": bson.M{ "$search": "mysearch" } }
).Select(
bson.M{ "score": bson.M{ "$meta": "textScore" } }
)
就像在标准 API 示例中一样,“查询”和“投影”部分是彼此“分离”的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)