2014-01-16 32 views
0

我试图运行这样的:使用独特和跳过查询

db.col.find().skip(5).distinct("field1") 

但它抛出一个错误。

如何一起使用它们?

我可以使用聚合,但结果是不同的:

db.col.aggregate([{$group:{_id:'$field1'}}, {$skip:3},{$sort:{"field1":1}}]) 

我要的是在有序即数字应该是第一位的,然后大写字母,然后小写字母链接。

+0

您是否尝试过阅读说明书? http://docs.mongodb.org/manual/reference/method/db.collection.distinct/ –

+0

尝试了您的查询。得到了TypeError:db.col.find()。distinct(“field1”)在shell中不是函数 – blackmamba

+0

@u_mudler:是的。最初我试着这样做:db.col.distinct(“field1”)。skip(5)但不同的是返回一个列表而不是光标,所以不能使用跳过这个。 – blackmamba

回答

1

不同的方法必须在COLLECTION上运行而不是在游标上并返回数组。阅读本文 http://docs.mongodb.org/manual/reference/method/db.collection.distinct/ 所以你不能在不同的地方使用skip。

可能是您应该使用此查询 db.col.aggregate([{$group:{_id:'$field1'}}, {$skip:3},{$sort:{"_id":1}}]),因为字段field1将不会在第一个分组的子句后的结果中存在。

此外,我认为你应该先做排序,然后跳过,因为在你的查询中,你跳过3个未排序的结果,然后对它们进行排序。

(如果你提供有关文档的结构,你希望它会更清楚,我会正确答对什么输出的详细信息)