5

マングースに頭を悩ませようとしていますが、より高度なクエリオプション、特に.inメソッドと.sortメソッドのドキュメントを見つけるのに苦労しています。たとえば、年齢で人を並べ替える構文は何ですか?

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

次に、あるジャンルに基づいて映画を検索するとします。この場合、映画には多くのジャンル(この場合は文字列の配列)を含めることができます。おそらく、それを実現するために.in関数を使用しますが、構文がどうなるかはわかりません。または、.inメソッドをまったく使用する必要がないかもしれません...?いずれにせよ、私は道に迷っています。

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

誰かアイデアはありますか?またはさらに良いことに、いくつかの包括的なドキュメントへのリンク?

ありがとう!
クリス

4

2 に答える 2

9

Yeah, the mongoose documentation is lagging on some of these things, and unfortunately the solution is not very intuitive (comes with the territory when using something still going through rapid development and API changes on the way to version 1.0)

Meanwhile, this will do what you're looking for in terms of sorting:

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

As for the question about more complex nested relationships, if you haven't already, you may want to start with the excellent MongoDB documentation, specifically the articles on Schema Design, Advanced Queries and Dot Notation (reaching into objects). Knowing MongoDB inside and out should make navigating the murkier parts of mongoose a breeze.

Here's an example for finding movies by genre using $in:

db.model("Movie").find({ 'genres': { $in: ['Horror','Comedy'] } }).all(function(movies) { });
于 2010-12-25T21:47:23.850 に答える
2

ダニエルの答えは私にはうまくいきませんでした。APIは1.0.14から変更されたと思います(http://groups.google.com/group/mongoose-orm/browse_thread/thread/cc77914021940e73/34fc6f45938a2242?lnk=raot)

これは私のために働いたものです:

db.model("Person")
  .find()
  .sort('age', 1)
  .execFind(function(err, people) { 
 });
于 2012-01-08T23:20:45.753 に答える