MongoDB游标的起点和以前的方法?

时间:2015-10-02 01:25:23

标签: node.js mongodb meteor nosql

这里的Mongo有点新鲜。我想使用find()返回集合的子集,但是从指定的"起点"。我有一个类似字典的文档列表,我通过sortlimit参数按块和字母顺序返回,但它总是从集合的开头开始。

我希望能够添加"以"开头find()方法的参数,例如,如果我查询字母" h"它将返回所有文件但返回的第一个文件是以" h"开头的第一个文件。使用next()最终将返回以" i"," j"," k"等开头的文档。我也无法找到任何用途或黑客来允许" previous()"与next()相反的方法。我想使用" previous()" (或者可以称之为的任何东西),以" g"," f"开头的方式返回文件,一直回到集合的开头。

我吠叫正确的树吗?这似乎是一个非常明显的数据库功能,但我还没有发现任何使用Mongo的例子或其他提及。

1 个答案:

答案 0 :(得分:1)

光标的起点只是结果集中的第一个文档,它基于对查询的过滤和排序。

因此,如果您拥有一个包含name字段的文档集合,则可以使用'h'运算符来获取名称以$gte开头的文档开头的文档然后在name上升序排序:

db.test.find({name: {$gte: 'h'}}).sort({name: 1})

现在,游标只向前移动,所以如果你想向相反的方向前进,你必须使用一个新的查询来翻转事物:

db.test.find({name: {$lt: 'h'}}).sort({name: -1})