我在MongoDB中有一个看起来像这样的集合(为清楚起见,省略了所有其他字段)
{ "name" : "Toyota Camry" },
{ "name" : "Fort Taurus" },
{ "name" : "Ford Fiesta" }
我想做的是找出这些项目出现“全包”的句子。例如,文本:
我需要某种查询MongoDB的方式,因此它将为我提供福特嘉年华上的匹配项,但不会提供 Fiesta
上的匹配项我曾尝试使用文本索引,但这会返回所有内容。理想情况下,该概念是
“采用这一行文本,看看它是否包含数据库中任何已存储的项目”
更好:
如果我能获得最长的比赛(即,如果有“福特嘉年华”和“福特嘉年华涡轮”,那么我只希望后者在文本内)。
有什么好主意吗?这可行吗?
答案 0 :(得分:1)
您可以通过创建通配符文本索引来搜索具体内容
db.collection.createIndex( { "$**": "text" } )
然后执行以下操作
{"$text" : {"$search" : "\"<insert term here>\""}}
这将仅返回与您的文本完全匹配的字符串。