Mongodb错误:无效的运算符:$ search执行$ text搜索

时间:2014-04-22 07:17:19

标签: mongodb

我用这个创建了一个索引:

db.MyCollection.ensureIndex({"field1": "text"})

我在Robomongo中运行以下内容:

db.MyCollection.find({$text:{$search:"something"}})

并收回此错误:

error: { "$err" : "invalid operator: $search", "code" : 10068 }

文档似乎很清楚,我使用了正确的语法:http://docs.mongodb.org/manual/reference/operator/query/text/。我使用mongo版本2.4.9。任何人都知道问题可能在这里吗?

1 个答案:

答案 0 :(得分:1)

在mongo 2.6 + $text中的工作原理如下:

db.collection.insert({desc: "This is a string with text"});
db.collection.insert({desc:"This is a another string with Text"});
db.collection.insert({desc:"This is a another string with ext"});
db.collection.ensureIndex({"desc":"text"});
db.collection.find({
    $text:{
        $search:"text"
    }
}); 

这将输出为:

{ "_id" : ObjectId("553277a608b85f33165bf3e0"),
 "desc" : "This is a another string with Text" }

{ "_id" : ObjectId("5532779f08b85f33165bf3df"), 
"desc" : "This is a string with text" }

此外,如果您使用的是mongo版本2.4,请使用以下内容:

 db.collection.ensureIndex({"desc":"text"});
 db.collection.runCommand( "desc", { search: "Text"})