如何检索其属性是给定参数的子字符串的所有文档?

时间:2013-12-12 21:31:00

标签: javascript node.js mongodb mongoose

我有以下Mongoose Schema

var People= new Schema({
      firstName: String,
      alias: [String]
});

我正在寻找一种方法来返回其中一个alias字符串与匹配或在给定值中作为子字符串存在的所有文档。

例如:

{ firstName: Jon
  alias: ['foo', 'fuchs']}
{ firstName: Ann
  alias: ['bar', 'fuchsbar']}
{ firstName: Paul
  alias: ['foobar']}
  • 如果我传入foob,我想归还乔恩。
  • 如果我传入foobar,我想回到Jon,Ann和Paul。
  • 如果我传入fuchs,我想退回Jon。

是否可以在Mongo中进行这样的子串查询?

1 个答案:

答案 0 :(得分:1)

我建议您索引alias字段,然后按以下方式为字符串“fuchs”生成查询:

db.people.find( { "alias" : { "$in" : [ "f","fu","fuc", "fuch", "fuchs" ] } } )

您需要自己生成$in值的适当列表,我担心,查询语言中没有内置的功能。