2016-06-28 3 views
1

Близко связан с this, но я использую версию mongod 3.2, что означает, что это другая проблема.

Я создал текстовый индекс:

> db.mycollection.createIndex({body:'text'}) 

Тогда я пытаюсь найти его:

> db.mycollection.find({$text:{$search:'foo'}}) 
Error: error: { "$err" : "invalid operator: $search", "code" : 10068 } 

It should работу. (изменения в текстовом операторе $ для v3.2 не должны влиять на это.) Что я делаю неправильно?

+0

Я не вижу никаких проблем с вашим запросом, и он работает отлично. Попробуйте перезапустить базу данных или даже переустановить, если это возможно. – Saleem

+0

Согласовано. Запрос правильный, и он работает нормально. – notionquest

+0

Спасибо, я сделал новую деинсталляцию/переустановку, используя [docs] (https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/), но оказалось, что старые базы данных не были удалены. –

ответ

0

Проблема была вызвана старой базой данных (созданной mongod 2.4), которая пережила процесс удаления/переустановки mongodb. official doumentation не упоминал об этом, но в то время как удалить старую версию, надо было сделать:

sudo rm -r /data/db/* 

(Возможно, из-за того, как был установлен 2,4?) Удаление этих файлов, и в результате чего мои старые данные вперед, используя mongodump и mongorestore команды работали.