为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
互换的青春 2021-10-25 16:48:29
我正在使用 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 时,它会起作用。
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

这里的问题是您使用 BSON“地图”作为参数,将“投影”作为“查询”的一部分。而是使用.Select()链接中的方法进行投影:


collection.Find(

    bson.M{ "$text": bson.M{ "$search": "mysearch" } }

).Select( 

    bson.M{ "score": bson.M{ "$meta": "textScore" } }

)

就像在标准 API 示例中一样,“查询”和“投影”部分彼此“分开”。


查看完整回答
反对 回复 2021-10-25
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信