python筛选某个时间段的mongoDB数据

导入pymongo模块

from pymongo import MongoClient

python连接MongoDB数据库

  
def __init__(self, ip='0.0.0.0', port=27017):
        self.db_server = MongoClient(ip, port)['test']
        self.db_filter_data = self.db_server['workSpace']

连接ip为0.0.0.0,端口为27017,名为test的数据库,self.db_server[‘workSpace’]操作此数据库中名为workSpace的集合。

筛选条件

condition = {
    'sex': 'man',
    'time': {"$gte": star_time, "$lte": end_time}
}

筛选条件用json格式,time条件中使用了$gte和$lte,表示筛选时间段time为 start_time<= time<= end_time 的数据。

$lt < (小于 )
$lte <= (小于等于)
$gt > (大于 )
$gte >= (大于等于)

我在给数据库存数据时候使用了时间戳的形式,所以这里对star_time和end_time做处理,也转化为时间戳的形式。

def string2timestamp(format_time):
    # 时间
    ts = time.strptime(format_time, "%Y-%m-%d %H:%M:%S")

    # 格式化时间转时间戳
    tm = time.mktime(ts)
    return tm


# 筛选条件
star_time = string2timestamp('2020-08-11 16:00:00')
end_time = string2timestamp('2020-08-13 8:00:00')

数据库筛选数据

 db_res_data =  self.db_filter_data.find(condition).sort({"time":-1})

self.db_filter_data.find(),MongoDB的find()方法中如果没有传参,默认筛选所有数据,find()中传入筛选条件,筛选符合条件的参数。sort()方法可以对查询到的数据进行排序,sort({“time”:-1})表示对数据按time字段进行降序排序,1用于升序排列,而-1用于降序。

 total =  self.db_filter_data.find(condition).count()

count()方法,统计查询到的数据条数。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值