Node.js mongoose:如何使用查询的.in和.sort方法?

我试图围绕mongoose,但我很难find一些更高级的查询选项,特别是.in和.sort方法的任何types的文档。 sorting的语法是什么,例如按年龄分类的人?

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

然后,假设我想根据一个stream派find一部电影,其中一部电影可以有很多stream派(在这个例子中是一串string)。 据推测,我会使用.in函数来完成,但我不确定语法是什么。 或者,也许我不必使用.in方法…? 无论哪种方式,我迷路了。

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

有人有主意吗? 或者甚至更好,链接到一些全面的文档?

谢谢!
克里斯

是的,mongoose的文档在这些东西中是滞后的,不幸的是,这个解决scheme并不是非常直观的(在使用一些仍然经历了快速开发和API改变的1.0版本的领域时,

同时,这将做你正在寻找的sorting方面:

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

至于更复杂的嵌套关系的问题,如果你还没有,你可能需要从优秀的 MongoDB文档开始 ,特别是关于Schema Design , Advanced Queries和Dot Notation(伸入对象)的文章 。 从内部和外部了解MongoDB应该可以轻松浏览mongoose更凶恶的部分。

以下是使用$ in查找电影风格的示例:

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

丹尼尔的回答对我不起作用。 我相信这个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) { });