2015-02-18 18 views
5


Dal nodo js, ​​provo a recuperare i documenti in base alla parola chiave senza distinzione tra maiuscole e minuscole. Quando provo direttamente dalla console mongo db, sono in grado di vedere il risultato.

db.users.findOne({"displayName":{$regex: /.*abc./, $options:"i"}}) 

Ma quando provo lo stesso nel nodo js, ​​sto ottenendo risultato vuoto.

var selector = { "displayName": {$regex: "/.*abc./", $options:"i"}} 

è ciò dovuto all'espressione regolare non in javascript.
Qualcuno può aiutarmi in questo.

+0

http://stackoverflow.com/questions/11073863/mongodb-regular-expression-search-starts-with-using-javascript-driver-and-node –

risposta

8

Il valore $regex deve essere il modello di stringa da abbinare o un oggetto espressione regolare. Quando si passa una sequenza di stringhe, non si includono i delimitatori / come si sta facendo nel codice node.js.

Quindi uno di questi avrebbe funzionato in node.js:

var selector = {"displayName": {$regex: ".*abc.", $options:"i"}} 

O

var selector = {"displayName": {$regex: /.*abc./, $options:"i"}} 
7

, la prego di provare questo, funziona per me.

var getValue='abc'; 
var regexValue='\.*'+getValue+'\.'; 
db.users.findOne({"displayName":new RegExp(regexValue, 'i')}) 
Problemi correlati