文章目录
- 查询某个值处于某个区间的全部记录
- 查询处于某个时间区间的记录
pymongo中,使用如下的运算符:
- $gt:大于
- $lt:小于
- $gte:大于等于
- $lte:小于等于
所以想查找一个范围,就使用>=最小值且<=最大值
来查找,使用的方法是:
find_records = coll.find({'age': {
'$gte': 10, # 大于等于10
"$lte": 20} # 小于等于20
}, {})
这样,找到的值就是处于[10,20]
这个区间的全部记录
查询某个值处于某个区间的全部记录
示例代码:
from pymongo import MongoClient
mongo_conn = MongoClient(host='localhost', port=27017)
mongo_db = mongo_conn.get_database("test_db") # 指定数据库
coll = mongo_db.get_collection("test_coll") # 指定集合
# 增加数据
coll.insert_many([
{"name": "小红", 'age': 9},
{"name": "小蓝", "age": 13},
{"name": "小绿", "age": 20},
{"name": "小黄", "age": 30},
])
# 按照区间值查询数据
find_records = coll.find({'age': {
'$gte': 10, # 大于等于10
"$lte": 20} # 小于等于20
}, {})
for _record in find_records:
print(_record)
得到结果:
{'_id': ObjectId('6316b007ea4a810c5299ebc8'), 'name': '小蓝', 'age': 13}
{'_id': ObjectId('6316b007ea4a810c5299ebc9'), 'name': '小绿', 'age': 20}
查询处于某个时间区间的记录
示例代码:
from pymongo import MongoClient
from datetime import datetime
mongo_conn = MongoClient(host='localhost', port=27017)
mongo_db = mongo_conn.get_database("test_db") # 指定数据库
coll = mongo_db.get_collection("test_coll") # 指定集合
# 增加数据
coll.insert_many([
{"name": "小红", 'age': 9, "add_time": datetime(2020, 1, 1)},
{"name": "小蓝", "age": 13, "add_time": datetime(2020, 5, 1)},
{"name": "小绿", "age": 20, "add_time": datetime(2020, 10, 1)},
{"name": "小黄", "age": 30},
])
# 开始查询
find_records = coll.find({'add_time': {
'$gte': datetime(2020, 1, 1), # 大于 2020年1月1日
"$lte": datetime(2020, 5, 1)} # 小于 2020年5月1日
}, {})
for _record in find_records:
print(_record)
得到结果:
{'_id': ObjectId('6316c9ed72efe9049e2e199c'), 'name': '小红', 'age': 9, 'add_time': datetime.datetime(2020, 1, 1, 0, 0)}
{'_id': ObjectId('6316c9ed72efe9049e2e199d'), 'name': '小蓝', 'age': 13, 'add_time': datetime.datetime(2020, 5, 1, 0, 0)}