使用多个键搜索并“以”开头“

时间:2014-09-04 23:39:28

标签: mongodb mongodb-query

在名为"的东西"

的集合中执行以下搜索类型的最佳方法是什么?
 mylist = ['lak', 'dodg', 'ang']

并且返回可能是:

 ["lake", "Lakers", "laky", "dodge", "Dodgers", "Angels", "angle"]

我是否需要为每个执行单独的查询?

1 个答案:

答案 0 :(得分:1)

要执行此操作,您需要使用mongodb命令$in来搜索与数组中某些内容匹配的所有内容。

您将使用的命令是:

db.things.find( {name: { $in: mylist }} )

但要实现这一点,你想在数组中使用正则表达式,所以你可以在数组中定义它们,或者如果你想维护字符串那么最好的做法就是创建另一个数组并循环通过并从字符串创建正则表达式。

mylist = [/^lak/i, /^dodg/i, /^ang/i]

^只有在它以值开头时才会匹配,而i在末尾会使搜索大小写不敏感。