Node.js Mongoose:如何使用查询的.in和.sort方法?
题
我正在尝试将自己的头缠绕在猫鼬上,但是我很难找到一些更高级查询选项的文档,尤其是.in和.sort方法。例如,按年龄的人进行排序的语法是什么?
db.model("Person").find().sort(???).all(function(people) { });
然后,假设我想找到一部基于类型的电影,其中电影可以拥有许多类型(在这种情况下,是一系列弦乐)。据推测,我会使用.in函数来实现这一目标,但是我不确定语法是什么。也许我根本不必使用.in方法...?无论哪种方式,我迷路了。
db.model("Movie").find().in(???).all(function(movies) { });
有人有想法么?甚至更好的是,链接到一些综合文档?
谢谢!
克里斯
解决方案
是的,Mongoose文档落后于其中的某些内容,不幸的是,解决方案不是很直观(当使用仍在经历快速开发的事物时,该领域与该版本的API更改为1.0版)
同时,这将在分类方面做您想要的事情:
db.model("Person").find().sort([['age','ascending']]).all(function(people) { });
至于关于更复杂的嵌套关系的问题,如果您还没有,您可能想从 出色的 MongoDB文档, ,特别是关于 模式设计, 高级查询 和 点表示法(进入对象). 。知道蒙古内外应该会使猫鼬的模糊部分变得轻而易举。
这是使用$ 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/thread/cc77914021940e73/34fc6fc6f45938a2242?lnk=raot)
这对我有用:
db.model("Person")
.find()
.sort('age', 1)
.execFind(function(err, people) {
});
不隶属于 StackOverflow