2015-09-23 43 views
6

を返さない私持って次のクエリMongoDBのテキスト検索結果

db.Profiles.find({ "$text" : { "$search" : "vk" } }) 

それは私に次のような結果

{ 
    "_id" : ObjectId("55e999a5bd1f3926586799bb"), 
    "created" : ISODate("2015-09-04T13:16:21.555Z"), 
    "userId" : 4790, 
    "email" : "[email protected]", 
    "firstName" : "", 
    "lastName" : "", 
    "phoneNumber" : "", 
    "isUnsubscribed" : false, 
    "isAboveLimit" : true, 
    "status" : 0, 
    "userAgent" : 0, 
    "isDeleted" : false, 
    "p2l" : [ 
     { 
      "listId" : 31613, 
      "status" : 25, 
      "subscriptionDate" : ISODate("2015-09-17T14:04:33.660Z") 
     } 
    ], 
    "countryId" : 0, 
    "cf" : [] 
} 

を与えます。しかし、次があり

db.Profiles.find({ "$text" : { "$search" : "v" }}) 

をしません結果ではありません。 the documentationから

答えて

4

$textオペレータが完全に一致した

は言葉を茎。したがって、 文書フィールドにブルーベリーという単語が含まれている場合は、青の検索結果が で一致しません。しかし、ブルーベリーやブルーベリーは一致します。

あなたはemailフィールドにvを含むレコードを検索したい場合は、$regex試合を行うことができます。

db.Profiles.find({ "email" : { "$regex" : /v/ } }) 
+0

正規表現は、このdoen't使用インデックスので、私には適していません –

+2

@ MongoUser101あなたはその声明の源泉を持っていますか? http://docs.mongodb.org/v3.0/reference/operator/query/regex/#index-useのステートの違いは、非常にそうです。 –