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

时间:2015-07-24 10:18:09

标签: mongodb go mongodb-query mgo

我正在使用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

由于

1 个答案:

答案 0 :(得分:2)

这里的问题是你正在使用BSON" map"作为"投影的论据"作为"查询"的一部分。而是使用.Select()方法进行投影链接:

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

就像在标准的API示例中一样,"查询"和"投影"部分被分开"来自彼此。