2012-04-14 22 views
5

私はグーグルでもmongooseのウェブサイトでも答えが見つからないので、私はここで尋ねています。可能であれば、文書内で部分的に一致する文字列を検索するにはどうすればよいですか。一致する部分文字列を見つける

例:

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

マングース機能:結果は "パリ" を持つユーザー・コレクションからの文書のリストになり

searchForCity("Paris"); 

でユーザーコレクションで

location文字列。例:

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

ひよこが助けてくれることを願っています。http://www.mongodb.org/display/DOCS/Advanced+Queriesを探してください.findは素晴らしいものがあります。 –

答えて

16

あなたはそのためのregexを使用することができます。

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はそのインデックスを使用します

+2

完全に作業し、追加する必要がありました。var expression = new RegExp(word、 "i"); were word = "Paris";私はそこに変数を含めることができました。 – guiomie

+0

マングース溶液はありますか? – chovy

+0

@chovyええと、答えのどの部分が*モンゴースの解決策ではありませんか? –

関連する問題