我用这个创建了一个索引:
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。任何人都知道问题可能在这里吗?
答案 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"})