配列内の要素を RegExp
regex =[new RegExp( "sai"、 "i")、new RegExp( "test"、 "i")、...]
map()
RegExpラッパーを使用して配列内の要素を新しい配列にマップするメソッド。この配列は、 $ in
:
var x = ["sai","test","jacob","justin"],
regex = x.map(function (e) { return new RegExp(e, "i"); });
db.users.find({"profile.firstName": { "$in": regex } });
$ in
を使用する
小さな配列ではかなり効率的ですが、巨大なリストでは、一致するドキュメントを見つけるためにインデックスをスキップしたり、使用するインデックスがない場合はコレクション全体をウォークスルーしたりするため、あまり効率的ではありません。
正規表現で$inを使用する 、次のようなキーワードリストでパイプ区切りの正規表現パターンを使用できます:
var x = ["sai","test","jacob","justin"],
regex = x.join("|");
db.users.find({
"profile.firstName": {
"$regex": regex,
"$options": "i"
}
}).count;