【问题标题】:Mongoose error while sorting $text search scores对 $text 搜索分数进行排序时出现 Mongoose 错误
【发布时间】:2023-03-03 21:26:02
【问题描述】:

我正在使用 Mongoose 和 MongoDB 进行简单的文本搜索。我有一个名为 Todo 的模型,我正在搜索已编入索引的集合。例如,我正在尝试对下面一行中的单词“coffee”进行文本搜索。

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

这会导致以下错误:

TypeError: Invalid sort value: {score: [object Object] }

错误指向我在上面输入的行。我确定这是导致问题的排序方法,因为当我删除查询的那部分时,我可以获得未排序的结果。

让这个问题更加令人困惑的是,我在同一个集合中通过 robomongo 运行完全相同的查询,并且它在那里工作。

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

这与 MongoDB 提供的文档完全相同。我相当肯定这是 Mongoose 的问题,但它以前可以正常工作。

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    事实证明这是 Mongoose 版本的错误。我使用的是 3.6,升级到 4.4.20 后它开始工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 2020-05-31
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多