Я перехожу мой код от старого драйвера PHP MongoDB: http://php.net/manual/en/class.mongoclient.phpполнотекстового поиска счет проекции в новый драйвер MongoDB для PHP
Чтобы новый драйвер MongoDB: http://php.net/manual/en/set.mongodb.php
В предыдущей версии у меня было это:
$db->collection->find([
'$text' => [ '$search' => "stackoverflow" ]
],
[
'score' => [ '$meta' => 'textScore' ]
])->sort([ 'sort' => [ 'score' => [ '$meta' => 'textScore' ] ] ]);
В новой версии больше нет функции сортировки на курсоре, вы должны передать ее как опцию. Так новый код выглядит так:
$db->collection->find([
'$text' => [ '$search' => 'stackoverflow' ]
],
[
'score' => [ '$meta' => 'textScore' ],
'sort' => [ 'score' => [ '$meta' => 'textScore' ] ]
]);
Но я получаю сообщение об ошибке: «BADVALUE должен иметь $ мета проекцию для всех $ мета ключей сортировки»
Это потому, что оценка проекции не происходит больше , Если вы просто удалите опцию сортировки и результат журнала, вы увидите, что в массиве результатов нет оценки. Об этом вообще нет документации.
Кто-нибудь знает, как исправить эту проблему?
Спасибо