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

是的,mongoose 文档在其中一些方面落后了,不幸的是,解决方案不是很直观(当使用仍在快速开发中的东西时附带领土,并且 API 在版本 1.0 的路上发生了变化)

同时,这将满足您在排序方面的需求:

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

至于关于更复杂的嵌套关系的问题,如果你还没有,你可能想从优秀的 MongoDB 文档开始,特别是关于Schema DesignAdvanced QueriesDot Notation (reaching into objects)的文章。了解 MongoDB 的内部和外部应该可以轻松地浏览 mongoose 的模糊部分。

下面是一个使用 $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 回答