在查询中使用distinct和skip

时间:2014-01-16 05:34:23

标签: mongodb pymongo

我试过这个:

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

但它会引发错误。

如何一起使用它们?

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

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

我想要的是按排序顺序排列的链接,即数字首先是大写字母,然后是小写字母。

1 个答案:

答案 0 :(得分: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个未排序的结果,然后对它们进行排序。

(如果您提供有关文档结构的更多信息以及您希望的输出更清楚,我会更正确地回答)