2015-09-23 9 views
6

Ich habe die folgende AbfrageMongoDB Textsuche kehrt nicht ein Ergebnis

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

Es gibt mir das folgende Ergebnis

{ 
    "_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" : [] 
} 

Aber die folgenden nicht

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

Es sind keine Ergebnisse.

Antwort

4

Von the documentation:

Der $text Betreiber auf der gesamten Spiele Stammwort. Wenn also ein Dokumentfeld das Wort Blaubeere enthält, wird eine Suche nach dem Begriff blau nicht übereinstimmen. Blaubeere oder Blaubeeren passen jedoch zusammen.

Wenn Sie die Datensätze finden möchten, die eine v im email Feld enthalten, können Sie eine $regex Spiel tun:

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

Regex ist für mich nicht geeignet, da diese Indizes –

+2

doen't @ MongoUser101 Haben Sie eine Quelle für diese Aussage? http://docs.mongodb.org/v3.0/reference/operator/query/regex/#index-use sagt anders, sehr viel. –

Verwandte Themen