pymongo的比较排序查询性能比较,sort参数和sort函数, find和find_one

本文探讨了在MongoDB中使用find与sort函数的不同方式及其性能表现,对比了find_one与find结合sort的效率差异,并提供了具体的代码示例与耗时对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



sort参数与sort函数

官方文档中,find函数中的说明表明,在find中传参应该和cursor后面调用sort函数一样

find( filter=None, projection=None, skip=0, limit=0, no_cursor_timeout=False, cursor_type=CursorType.NON_TAILABLE, sort=None, allow_partial_results=False, oplog_replay=False, modifiers=None, manipulate=True)


  • sort (optional): a list of (key, direction) pairs specifying the sort order for this query. See sort() for details.


查询条件和排序条件如下

query = {
# 'start': {'$lte': int_ip},
'end': {'$gte': int_ip}
}
sort = [('end', 1)]

sort作为入参查询方式
cursor = db.aiwen.find(query, sort=sort, limit=1)

sort函数调用方式
db.aiwen.find(query).sort([('end', 1)]).limit(1)

为了保证格式统一,将find_one替换成find函数
sort参数方式调用 耗时  cost:1.97000002861
sort函数方式调用 耗时  cost:1.97200012207

但用Robomongo工具查询,发现时延很短

find_one函数

cursor = db.aiwen.find_one(query, sort=sort)
发现查询结果一下得到提升,与robomongo相当
cost:0.00399994850159

转载于:https://www.cnblogs.com/inns/p/7246168.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值