Mongodb - 如何在多个字段中查找字符串?

Bac*_*ach 18 mongodb

在这种情况下使用Pymongo.

我有User的电子邮件,first_name,last_name.

我正在使用这个Pymongo片段:

user_found = users.find({'$or':[
            {'email':{'$regex':searchString, '$options':'i'}},
            {'first_name':{'$regex':searchString, '$options':'i'}},
            {'last_name':{'$regex':searchString, '$options':'i'}}]})
Run Code Online (Sandbox Code Playgroud)

这个例子有用,如果我想找到searchString:

  • 电子邮件,或
  • first_name,或

现在我还需要在first_name + last_name组合中找到searchString.

我怎样才能做到这一点?在mongo中是否有办法通过查询将两者合并为"全名",然后搜索全名?

Ian*_*cer 15

最简单的方法是添加一个数组字段,并使用您要搜索的所有变体填充它.索引那个数组字段.

这样,您只需要一个索引,并且您在所有字段中的搜索很简单,并且在您要搜索某些新搜索变体时不会更改.您还可以规范化放入搜索数组中的文本,例如,将其封装,删除标点等.

请参阅/sf/ask/574433191/

编辑: MongoDB的文档现在涵盖了关键字搜索和新的全文搜索功能.