typeorm mongo全文搜索排序相关

时间:2020-08-30 08:20:19

标签: mongodb full-text-search typeorm

我正在使用typeorm在mongodb上进行连接, Typeorm是否支持对全文搜索mongodb返回的相关分数进行排序 来自mongo,我想查询为:

db.todos.find( {$text: { $search: "coffee" }}, {score: { "$meta": "textScore" }}) .sort({score: { "$meta": "textScore" }}) .limit(20);

如何从typeorm的MongoRepository中查询? 谢谢。

2 个答案:

答案 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顺序对结果进行排序。

相关问题