2017-08-16 2 views
0

J'utilise le framework js Loopback avec MongoDB. Ici je vérifie si un champ contient une chaîne donnée ou nonLa vérification d'un champ contient une chaîne, fonctionne avec un champ de type chaîne mais pas avec le numéro

user.find({ 
     where: { 
     or: [{ 
     mobile: { 
      "regexp": '/' + data.search + '/i' 
     }, 
     contacts:{ 
      "regexp": '/' + data.search + '/i' 
     }}] 

     } 
    }, function(err, mobileResult) { 
    if (err) { 
      callback(err, null); 
    } else { 
    ....... 
    ....... 
    } 
    }); 

celui-ci fonctionne avec le champ de type chaîne contacts mais pas avec le champ numéro mobile.

J'ai essayé des réponses de ces post mais cela n'a pas fonctionné pour moi.

+0

Ne pas utiliser ' '/' et' ' '/ i'', passer le cas modificateur insensible via' options' de $. –

+0

J'ai essayé mais je pense, Il diffère avec le bouclage, Il montre 'MongoError: opérateur inconnu: $$ regex'. @ WiktorStribiżew s'il vous plaît lire le message une fois de plus. –

+0

@ WiktorStribiżew, En post, j'ai déjà donné le lien de la même réponse, mais cela n'a pas fonctionné, s'il vous plaît supprimer tag dupliquer. –

Répondre

1

Je pense que vous pouvez utiliser cette solution:

  1. aide globale pour interroger vos données:

MongoDB aggregation on Loopback

  1. En utilisant cette façon impressionnante pour la recherche sur un numéro dans MongoDB: (deuxième réponse)

MongoDB Regex Search on Integer Value

Je suis d'accord aussi avec @Stennie qui a commenté:

Regular expressions match patterns in strings. If you need to do pattern matching I'd suggest storing your mobile values as strings instead of numbers.