2014-06-25 4 views
0

Salut J'ai cette requête dans les voiles ...Quelle est la requête équivalente des voiles "contient" dans mongodb?

Model.find().where({ seachField : { contains:"search_key" }}).exec(cb); 

Total Rows retour: 20

Quand je suis en train de le convertir au noeud, je la requête à la place

db.get().collection("model").find({ seachField : { '$regex' : ".*"+searchKey+".*"}}).toArray()... 

Retour total de lignes: 10

Puis-je savoir quelle est la fonction "contains" équivalente à mongoDB pour obtenir le même nombre de résultats?

Appréciez votre aide!

Merci vous

+0

Aucune de ces déclarations devraient être valables. La syntaxe doit être '' field ": {contains:" search_key "}' ou plain mongo '" field ": {" $ regex ":" search_key "}' où "champ" est le champ à rechercher. Je suggérerais aussi que le problème réside peut-être dans le 'ou' à la place. –

+1

Salut Neil merci pour votre commentaire. Ah ouais j'ai oublié le champ de recherche :) merci de corriger ... Les deux fonctionnent très bien la seule différence est que les résultats ont un nombre différent. Je l'ai compris il y a quelques heures, je viens d'ajouter {"$ regex": ". *" + SearchKey + ". *", "$ Options": 'i'} pour une recherche insensible à la casse :) – Nina

Répondre

Questions connexes