查询名为data_mange的mongo表 获取startTime为5月1日 0点 结束时间endTime为5.31 日23.59.59的数据 hit是数据中的字段 为一个列表字典 要求使用python 输出数据data:[ cu_id:{num: com_id的数量(不能重复), cNum:符合条件的所有数据的hit长度之和, rate:hit中hitting为true的对象数量除以cNum } ] cu_id为data中的一个字段dep的前10个字符
时间: 2023-11-28 08:48:29 浏览: 63
可以使用PyMongo库来连接MongoDB数据库并查询数据。以下是一个简单的示例代码,假设数据库名为test,集合名为data_mange:
```python
from pymongo import MongoClient
# 连接MongoDB数据库
client = MongoClient('localhost', 27017)
db = client.test
collection = db.data_mange
# 查询数据
start_time = '2021-05-01 00:00:00'
end_time = '2021-05-31 23:59:59'
query = {
'startTime': {'$gte': start_time},
'endTime': {'$lte': end_time}
}
data = {}
for doc in collection.find(query):
cu_id = doc['dep'][:10]
com_ids = set(hit['com_id'] for hit in doc['hit'])
cNum = len(doc['hit'])
rate = sum(hit['hitting'] for hit in doc['hit']) / cNum if cNum > 0 else 0
if cu_id not in data:
data[cu_id] = {'num': len(com_ids), 'cNum': cNum, 'rate': rate}
else:
data[cu_id]['num'] += len(com_ids)
data[cu_id]['cNum'] += cNum
data[cu_id]['rate'] += rate
# 输出结果
print(data)
```
需要根据实际情况修改查询条件和数据处理逻辑。
阅读全文