2

名前のmongoデータベースがあります。

次のように見えるとしましょう。

{ "_id" : ObjectId("513a18c1f9e9b5c19fd80014"), "name" : "Mary Sue" }
{ "_id" : ObjectId("513a18d9f9e9b5c19fd80015"), "name" : "Tammy Sue" }
{ "_id" : ObjectId("513a18e4f9e9b5c19fd80016"), "name" : "Sueellen" }
{ "_id" : ObjectId("513a18eaf9e9b5c19fd80017"), "name" : "Ellen" }
{ "_id" : ObjectId("513a195af9e9b5c19fd80018"), "name" : "Sue" }
{ "_id" : ObjectId("513a1ccaf9e9b5c19fd80019"), "name" : "Eddie" }

次のように戻り値を優先する単一の結果に対して (大文字と小文字を区別しない) クエリを実行できるようにしたいと考えて
ます。 それ以外の場合、名前my 文字列が含まれている場合は、最初のアルファベット順の結果を返します。

例:
を検索すると、/sue/i"Sue" が返されます。
を検索すると、/e/i「Eddie」が返されます。
を検索すると、/len/i"Ellen" が返されます。
検索すると、/ue/i「Mary Sue」が返されます。

/^len/i2 つの別々の呼び出し (1 つは、次に/len/i0 の結果が得られた場合) を実行するか、すべての一致を見つけて結果を自分で解析することなく、これを行うことは可能ですか?

ここではたまたま node.js と mongoose を使用していますが、一般的な mongo の回答でも問題ないので、概念を理解できます。

4

1 に答える 1

-1

これは正しい正規表現の問題です。正規表現で複数の一致を指定できます。http://regex.learncodethehardway.org/book/を見て、正規表現をより深く理解することは価値があります。または、www.mongodb.org から 2.4 をダウンロードして、新しいテキスト インデックス オプションを試してください。

http://docs.mongodb.org/manual/release-notes/2.4/#text-indexes

于 2013-03-15T08:24:16.540 に答える