Question

Je suis en train d'envelopper ma tête autour de mangoustes, mais je vais avoir du mal à trouver toute sorte de documentation pour quelques-unes des options de requête plus avancées, en particulier les méthodes de .in et .Sort. Quelle est la syntaxe pour le tri, par exemple, une personne par âge?

db.model("Person").find().sort(???).all(function(people) { });

Alors, disons que je veux trouver un film basé sur un genre, où un film peut avoir de nombreux genres (dans ce cas, un tableau de chaînes). On peut supposer que j'utiliser la fonction .in pour y parvenir, mais je ne suis pas sûr de ce que la syntaxe serait. Ou peut-être que je ne dois pas utiliser la méthode .in du tout ...? De toute façon, je suis perdu.

db.model("Movie").find().in(???).all(function(movies) { });

Quelqu'un a des idées? Ou mieux encore, un lien vers une documentation complète?

Merci!
Chris

Était-ce utile?

La solution

Oui, la documentation mangouste est en retard sur certaines de ces choses, et malheureusement la solution est très intuitive (vient avec le territoire en utilisant quelque chose encore par le développement rapide et API changements sur le chemin de la version 1.0)

Pendant ce temps, cela va faire ce que vous cherchez en termes de tri:

db.model("Person").find().sort([['age','ascending']]).all(function(people) { });

En ce qui concerne la question sur les relations imbriquées plus complexes, si vous avez pas déjà, vous voudrez peut-être commencer par excellente documentation MongoDB , en particulier les articles sur schéma design , Requêtes avancées et Dot notation (pour atteindre des objets) . Connaissant MongoDB intérieur et l'extérieur devraient naviguer les pièces de mangouste une plus sombres brise.

Voici un exemple pour trouver des films par genre en utilisant $ dans:

db.model("Movie").find({ 'genres': { $in: ['Horror','Comedy'] } }).all(function(movies) { });

Autres conseils

La réponse de Daniel ne fonctionne pas pour moi. Je crois que le api a changé depuis 1.0.14 (http://groups.google.com/group/mongoose-orm/browse_thread/thread/cc77914021940e73/34fc6f45938a2242?lnk=raot)

est ce qui a fonctionné pour moi:

db.model("Person")
  .find()
  .sort('age', 1)
  .execFind(function(err, people) { 
 });
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top