В mongodb я могу сделать это:
db.getCollection('keywords').find(
{ $text: { $search: "I have headache" } },
{ score: { $meta: "textScore" } }
).sort( { score: { $meta: "textScore" } } )
результат
{
"_id" : "ux2dpeYKQCQRgdbzB",
"keyword" : "Headache",
"createdAt" : ISODate("2020-02-10T01:45:07.670Z"),
"createdBy" : "a5oNybXwHKB8DkxdB",
"score" : 1.33333333333333
}
и я хочу сделать это в метеоре:
Keywords.find(
{ $text: { $search: keyword } },
{ score: { $meta: "textScore" }, sort: { score: { $meta: "textScore" } } }
).fetch()
но он получит ошибку :
MongoError: must have $meta projection for all $meta sort keys
Я пытался так без сортировки
Keywords.find(
{ $text: { $search: keyword } },
{ score: { $meta: "textScore" } }
).fetch()
, но я не получаю поле оценки в этом документе:
{
"_id" : "ux2dpeYKQCQRgdbzB",
"keyword" : "Headache",
"createdAt" : ISODate("2020-02-10T01:45:07.670Z"),
"createdBy" : "a5oNybXwHKB8DkxdB"
}
как решить этот текстовый поиск в метеоре и сортировать по баллам?
спасибо