我正在使用typeorm在mongodb上进行连接, Typeorm是否支持对全文搜索mongodb返回的相关分数进行排序 来自mongo,我想查询为:
db.todos.find( {$text: { $search: "coffee" }}, {score: { "$meta": "textScore" }}) .sort({score: { "$meta": "textScore" }}) .limit(20);
如何从typeorm的MongoRepository中查询? 谢谢。
答案 0 :(得分:0)
我已经测试了以下代码,并且可以正常工作:
await todoRepository.find({
where: {
$text: { $search: 'search query here' },
},
take: 20
});
P.S。您需要确保在Todo集合中的字段上具有文本索引。
我不确定TypeORM是否按score
进行排序。到目前为止,我还没有成功。
答案 1 :(得分:-1)
首先,我建议您查看Find Options docs以获得更多信息。
按一个或多个值对结果进行排序非常简单。
在下面的代码片段中尝试重现您的问题:
*(arr + 4)
正如您在“查找选项”对象中看到的那样,我添加了一个 sort 子句,在该子句中,我按 score 的顺序以ASC顺序对结果进行排序。