Команда $text не поддерживается ошибка azure-cosmos-mongodb, какая версия поддерживается?

#node.js #mongodb #mongodb-query #azure-cosmosdb-mongoapi

Вопрос:

Как запросить частичный текстовый поиск по всем / любым полям в документе, используя azure cosmos API mongodb 3.5.9? В документации я обнаружил, что $text — это тот, который используется для этого случая, но который не поддерживает мое приложение. Можем ли мы использовать $regex или $ match? Если да, то как?

Вот что я попробовал:

Ошибка: { «ok»: 0, «code»: 115, «codeName»: «CommandNotSupported» } Запрос:

 db.db(config.mongodb.dbname).collection(collectionname).find({$text: { $search: ""test"" }} ).sort({createdDate: -1}).limit(limit).skip(skip).toArray((err, res) => {console.log(res)});
 

Какая версия поддерживает $text? или любая другая команда, которая выполняет то же, что и $text?

Любые предложения приветствуются…

Заранее спасибо….

Ответ №1:

$text не поддерживается. Вы можете использовать регулярное выражение следующим образом, find({x:{$regex: /^abc $/})

Комментарии:

1. под ‘x’ вы подразумеваете имя поля? Как выполнить поиск по всем полям, потому что поисковый запрос может быть в любом поле, поскольку это глобальный поиск в таблице.

2. Если вы ищете поиск, вам придется использовать Azure Search. Подробнее можно узнать здесь .