gpt4 book ai didi

python - Pymongo 游标限制(1)返回超过 1 个结果

转载 作者:IT老高 更新时间:2023-10-28 13:13:41 26 4
gpt4 key购买 nike

这些都是我收藏的文档:

{
"_id" : ObjectId("5110291e6ee1c31d5b275d01"),
"d" : 24,
"s" : [
1,
2,
3
]
}
{
"_id" : ObjectId("511029266ee1c31d5b275d02"),
"d" : 24,
"s" : [
4,
5,
6
]
}
{
"_id" : ObjectId("5110292e6ee1c31d5b275d03"),
"d" : 24,
"s" : [
7,
8
]
}

这是我要运行的查询:

mongo = get_collection(self.collection_name)
res = mongo.find().sort([('_id', -1)]).skip(1).limit(1)

get_collection() 是我制作的辅助方法。遍历光标 res 只会生成一个文档:

res = mongo.find().sort([('_id', -1)]).skip(1).limit(1)
for document in res:
print document

> {u's': [4.0, 5.0, 6.0], u'_id': ObjectId('511029266ee1c31d5b275d02'), u'd': 24.0}

但是,使用偏移量访问 res 会为第 0 和第 1 个元素返回两个不同的文档:

res = mongo.find().sort([('_id', -1)]).skip(1).limit(1)
pprint(res[0])
> {u'_id': ObjectId('511029266ee1c31d5b275d02'), u'd': 24.0, u's': [4.0, 5.0, 6.0]}
pprint(res[1])
> {u'_id': ObjectId('5110291e6ee1c31d5b275d01'), u'd': 24.0, u's': [1.0, 2.0, 3.0]}

这是一个错误吗? limit(1) 应该只返回一个结果,不是吗?

最佳答案

docs这是关于游标的索引访问的:

Any limit previously applied to this cursor will be ignored.

关于python - Pymongo 游标限制(1)返回超过 1 个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14712402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com