2015-09-23 21 views
6

ho la seguente queryMongoDb ricerca non restituisce un risultato

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

Mi dà il seguente risultato

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

Ma il seguente non lo fa

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

Ci non sono risultati

risposta

4

Da the documentation:

L'operatore $text corrisponde al completo derivava parola. Quindi, se un campo di documento contiene la parola blueberry, una ricerca sul termine blu non corrisponde. Tuttavia, mirtilli o mirtilli corrisponderanno.

Se si desidera trovare i record che contengono un v nel campo email, si può fare un $regex partita:

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

Regex non è adatto per me, perché questo doen't uso indici –

+2

@ MongoUser101 Hai una fonte per questa affermazione? http://docs.mongodb.org/v3.0/reference/operator/query/regex/#index-use afferma in modo diverso, moltissimo. –

Problemi correlati