Question

Je le bit suivant de js dans un projet nœud / mangouste. Je travaille sur un formulaire de saisie semi-automatique. Il fonctionne très bien avec un habitué « trouver », mais je veux faire une « distincte » trouver la place.

Alors, voici où je suis à ce jour. Le problème que je crois est dans la façon dont la requête est formée. aider quelqu'un peut avec ma syntaxe dans la ligne distincte? Ou est-ce juste que « distinct » de mangouste ne prend pas en charge regex dans une requête en option?

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);
});

Et voici ce que mon super-bavard (-vvvvvvvvvvvvv) console mangouste montre:

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

Toutes les idées?

Était-ce utile?

La solution

répondre à ma propre question. Je n'ai fait des erreurs de syntaxe dans la méthode distincte de mangouste. Il accepte 3 params, je n'avais 2. La syntaxe correcte avec une expression régulière (ou toute condition) est la suivante:

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

De Mongoose docs pour Model.distinct ():

Model.distinct(field, conditions, callback);

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top