mongodb 文本搜索:无效运算符:$search

mongodb text search: invalid operator: $search

this 密切相关,但我使用的是 mongod 版本 3.2,这意味着它是一个不同的问题。

我创建了一个文本索引:

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

那我试着搜索一下:

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

should 有效。 (对 v3.2 的 $text 运算符的更改不应影响这一点。)我做错了什么?

问题是由在 mongodb 卸载/重新安装过程中幸存下来的旧数据库(由 mongod 2.4 创建)引起的。 official doumentation没有提到,但是在卸载旧版本时,需要做的是:

sudo rm -r /data/db/*

(可能是因为 2.4 的安装方式?)删除这些文件,并使用 mongodump and mongorestore 命令将我的旧数据向前移动。