多数の基準に基づいてエントリを処理する Mongo 検索をセットアップしました。
現在最も簡単な方法 (ワイルドカードを使用しているため、パフォーマンスが向上しないことはわかっていますが、大文字と小文字を区別せず、ユーザーが単語全体を入力しないため、これを行うためのより良い方法がわかりません) は、検索で正規表現ワイルドカードを使用することです。 . 検索は次のようになります。
{ gender: /Womens/i, designer: /Voodoo Girl/i } // Should return ~200 results
{ gender: /Mens/i, designer: /Voodoo Girl/i } // Should return 0 results
上記の例では、両方の検索で約 200 件の結果が返されています (「Voodoo Girl」は婦人服のラベルで、対応するすべてのエントリにgender: "Womens"
フィールドがあります)。奇妙なことに、次のような他の検索を行うと、
{ designer: /Voodoo Girl/i, store: /Store XYZ/i }
// 0 の結果を返す必要があります
正しい数の結果 (0) が得られます。これは注文品ですか?ワイルドカードを使用したすべてのクエリに一致する結果のみが検索で返されるようにするにはどうすればよいですか?
参考までに、クエリはnodeJS
単純なdb.products.find({criteria})
ルックアップによって作成されています。