Est-ce que la fonction « distincte » de mangouste support regex dans une requête?
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?
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);