5

グーグルでもマングースのウェブサイトでも答えが見つからないようなので、ここで質問しています。可能であれば、ドキュメント内の部分的に一致する文字列を検索するにはどうすればよいですか?

元:

ユーザー コレクション内:

{ name: "Louis", location: "Paris, France" },
{ name: "Bill", location: "Paris, Illinoid" },
{ name: "Stephen", location: "Toronto, Ontario" }

マングース機能:

searchForCity("Paris");

結果は、ロケーション文字列に「パリ」を持つユーザー コレクションからのドキュメントのリストになります。元:

[
    { name: "Louis", location: "Paris, France" },
    { name: "Homer", location: "Paris, Illinois" }
]
4

1 に答える 1

16

そのために正規表現を使用できます:

Query#regexQuery#$regex

演算子を指定し$regexます。

query.regex('name.first', /^a/i)

だから、このようなもの:

User.where('location').$regex(/Paris/);
User.where('location').$regex(/paris/i); // Case insensitive version

MongoDB はすべてのlocation. 最初に正規表現を固定できる場合:

User.where('location').$regex(/^Paris/);

その後、場所にインデックスを付けることができ、MongoDB はそのインデックスを使用します。

于 2012-04-14T20:00:15.370 に答える