Pregunta

Tengo el siguiente bit de JS en un proyecto de nodo/mangosta. Estoy trabajando en una forma autocompleta. Funciona bien con un "hallazgo" regular, pero quiero hacer un hallazgo "distinto" en su lugar.

Así que aquí es donde estoy hasta ahora. El problema que creo es en la forma en que se forma la consulta. ¿Alguien puede ayudar con mi sintaxis en la línea distinta? ¿O es solo que el "distinto" de Mongoose no admite a Regex en una consulta opcional?

var text.term = 'johnny';
var regex = new RegExp("^"+text.term);
// execute the search
Performance.collection.distinct({lc_actor: regex}, function(err, docs) {
    var names = [];
    for(var nam in docs) {
        // push the lc_actor to the array
    names.push(docs[nam].lc_actor);
    }
    // send back via callback function
    callback(null, names);
});

Y esto es lo que mi consola de mangostos súper verbosa (-VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV) está mostrando:

Tue Nov 29 13:34:30 [conn1] runQuery called mydb.$cmd { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } }
Tue Nov 29 13:34:30 [conn1] run command mydb.$cmd { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } }
Tue Nov 29 13:34:30 [conn1] command mydb.$cmd command: { distinct: "performances", query: {}, key: { lc_actor: /^johnny/ } } ntoreturn:1 reslen:140 526ms

¿Algunas ideas?

¿Fue útil?

Solución

Respondiendo a mi propia pregunta. De hecho, tuve errores de sintaxis en el método distinto de Mongoose. Acepta 3 parámetros, solo tenía 2. La sintaxis correcta con una regex (o cualquier condición) es:

Performance.collection.distinct('lc_actor', {lc_actor: regex}, function(err, docs) {

De Mongoose Docs para Model.Distinct ():

Model.distinct(field, conditions, callback);

http://mongoosejs.com/docs/finding-documents.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top