node.js mongoose:クエリの.inおよび.sortメソッドを使用する方法は?
質問
Mongooseに頭を包み込もうとしていますが、より高度なクエリオプション、特に.inおよび.sortメソッドのいくつかのドキュメントを見つけるのに苦労しています。たとえば、年齢の人物のソートの構文は何ですか?
db.model("Person").find().sort(???).all(function(people) { });
次に、映画には多くのジャンル(この場合は文字列の配列)ができるジャンルに基づいた映画を見つけたいとしましょう。おそらく、私はそれを達成するために.in関数を使用しますが、構文がどうなるかはわかりません。それとも、.inメソッドをまったく使用する必要はありません...?いずれにせよ、私は迷子になりました。
db.model("Movie").find().in(???).all(function(movies) { });
誰かがアイデアを持っていますか?またはさらに良いことに、いくつかの包括的なドキュメントへのリンク?
ありがとう!
クリス
解決
ええ、マングースのドキュメントはこれらのいくつかに遅れをとっています、そして残念なことに、解決策はそれほど直感的ではありません(バージョン1.0への途中でまだ急速な開発とAPIの変更を経験しているときに領土に付属しています)
一方、これはあなたが選んでいることを選別に関して行います:
db.model("Person").find().sort([['age','ascending']]).all(function(people) { });
より複雑なネストされた関係についての質問に関しては、あなたがまだいないなら、あなたはから始めたいかもしれません 優れた MongoDBドキュメント, 、具体的には記事 スキーマデザイン, 高度なクエリ と ドット表記(オブジェクトに到達する). 。 Mongodbの内側と外側を知ることで、MongooseのMurkier部分を簡単にナビゲートする必要があります。
$ inを使用して、ジャンルごとに映画を見つけるための例を示します。
db.model("Movie").find({ 'genres': { $in: ['Horror','Comedy'] } }).all(function(movies) { });
他のヒント
ダニエルの答えは私にとってはうまくいきませんでした。 1.0.14(http://groups.google.com/group/mongoose-orm/browse_thread/thread/cc77914021940e73/34fc6f45938a2242?lnk = raot)からAPIが変わったと思います。
これが私のために働いたものです:
db.model("Person")
.find()
.sort('age', 1)
.execFind(function(err, people) {
});