在mongodb集合中按位置查询

时间:2016-09-17 05:22:36

标签: mongodb mongodb-query pymongo

我需要使用其位置在mongodb集合中获取文档。我完全知道文档在集合中的位置,但无法找到从集合中提取这些文档的方法。有没有办法实现这个目标?

public function newQuery($excludeDeleted = true){
    return parent::newQuery()->join('orders', 'users.id', '=', 'orders.user_id');
}

这是我试过但_id没有作为1,2,3插入...但它有一些随机数例如:57d8fd62f2a9d913ba0d006d。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用skiplimit根据natural order

中的排名进行查询
db.collection.find().skip(10).limit(1) // get 10th document in natural order

正如自然顺序链接指出的那样,文档顺序不需要与插入文档的顺序相匹配(使用an exception for capped collections)。如果您使用默认的ObjectId作为文档的_id字段,则可以按_id排序,以便根据集合中的插入进行排序(最多为ObjectId中时间戳的分辨率)

db.collection.find().sort([("_id",1)]).skip(10).limit(1) // get 10th document in inserted order

您也可以考虑使用自己的_id或添加字段以便根据您定义的位置进行排序。