Я делаю простой текстовый поиск с использованием Mongoose и MongoDB. У меня есть модель под названием Todo, и я просматриваю свою коллекцию, которая была проиндексирована. Например, я пытаюсь выполнить текстовый поиск слова «кофе» в строке ниже.
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, но она работала ранее.