db.collection.createIndex({"type_name":"text"});
db.collection.find();
输出:
{ "type_id" : "10735", "type_name" : "Tycho" }
{ "type_id" : "1550", "type_name" : "Trina" }
{ "type_id" : "12925", "type_name" : "Tiffany" }
{ "type_id" : "1637", "type_name" : "The Wombats" }
{ "type_id" : "11470", "type_name" : "The Wanted" }
使用:
db.collection.find({'$text':{'$search':"The Wombats"}})
输出:
{ "type_id" : "1637", "type_name" : "The Wombats" }
使用:
db.collection.find({'$text':{'$search':"Wombats"}});
输出:
{ "type_id" : "1637", "type_name" : "The Wombats" }
但是当我尝试时:
db.collection.find({'$text':{'$search':"The"}});
输出:
0
我期待不同的输出,出了什么问题?
答案 0 :(得分:0)
Mongodb对$ text运算符有一些停用词。
停止词语
$ text运算符会忽略特定于语言的停用词,例如 和以及的英语。
由于您在查询db.collection.find({'$text':{'$search':"The"}})
中使用其中一个停用词,因此未返回任何结果。
参考文献:
https://docs.mongodb.com/v3.2/reference/operator/query/text/#op._S_text
https://docs.mongodb.com/v3.2/reference/operator/query/text/#match-operation
答案 1 :(得分:0)
但是当我尝试这个时
$ regex = new MongoRegex(" / ^" .the。" ^ /"。" / i");
$ artistNmaeRenge = array(' type_name' => $ regex); 它的工作