2012-02-20 16 views
7

Tengo una colección MongoDB que tiene campos primerNombre & lastName, necesito recuperar los elementos que coincide con fullNames específicos:MongoDB encuentra haciendo coincidir dos campos concatenados?

hay una manera fácil de escribir una consulta que se compruebe que:

firstName + " " + lastName IN ARRAY()... ? 

- - EDITAR ---

La razón para concatenar es que no quiero facturar trabajos en el resultado (considerando que existe) si tengo [bill, steve] para firstNames & [puertas, trabajos] para el apellido.

Gracias!

+0

Su entrada es una matriz de firstNames y una matriz de lastNames? ¿Y te unes a ellos por posición en la matriz? En caso afirmativo, actualizaré mi respuesta, pero esto es * todavía * algo que debería hacer con su entrada, no en MongoDb. – michaeltwofish

Respuesta

1

Seguramente lo que desea:

db.myCollection.find({firstName:"bill",lastName:"gates"}) 

o hay una razón específica para concatenar realidad?

+0

La razón para concatenar es que no quiero facturar trabajos en el resultado (considerando que existe) si tengo [bill, steve] para firstNames & [gates, jobs] para lastname. – Olivier

1

Parece que tiene los campos concatenados como su entrada. Si ese es el caso, sería mejor que dividieras tus datos de entrada en cualquier idioma que estés usando y pasa los campos separados a MongoDB.

var names = "bill gates".split(); 
db.myCollection.find({firstName:names[0],lastName:names[1]}); 

Esto también permitirá que MongoDB use un índice si se define uno.

+0

No tengo campos concatenados como mi entrada, actualicé la q para hacerlo más claro. – Olivier

Cuestiones relacionadas