Ste*_*fan 0 sql ip between mongodb pymongo
我正在寻找相当于这个SQL查询的mongo:
SELECT country
FROM geoip
WHERE
2921648058 BETWEEN start AND end
Run Code Online (Sandbox Code Playgroud)
我的MongoDB文档如下所示:
{
"_id" : ObjectId("52daefed0c78fc8c9085498d"),
"country" : "DE",
"end" : "16777471",
"start" : "16777216"
}
Run Code Online (Sandbox Code Playgroud)
这些数字是转换为int格式的IP地址.不幸的是,关于这一点的所有搜索只出现了$ gt和$ lt运算符,在这种情况下没有多大用处,因为我不想检索范围内某个字段的文档,但文档中的范围很大如果文档本身符合搜索中给定的数字.
由于数据库的庞大规模,浏览所有记录并在脚本中评估结果不是一种选择.
在$gte与$lte经营者实际应用在这里; 你只需要使用不同的运营商start和end:
ip = 2921648058;
db.geoip.find({'start': {'$lte': ip}, 'end': {'$gte': ip}})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
647 次 |
| 最近记录: |