一个Mongodb案例-使用地理信息查询酒店
from pymongo import MongoClient
from bson.son import SON
# 连接MongoDB
client = MongoClient('mongodb://localhost:27017/')
db = client['hotel_database']
# 查询特定地理位置附近的酒店
def find_hotels_near_location(longitude, latitude, max_distance, max_results):
geo_query = {
'$nearSphere': {
'$geometry': {
'type': 'Point',
'coordinates': [longitude, latitude]
},
'$maxDistance': max_distance # 例如,100公里
}
}
hotels = db.hotels.find(geo_query, {'_id': 0}).limit(max_results)
return list(hotels)
# 示例:查询北海公园附近100公里以内的酒店,最多返回5个结果
hotels_near_beihai_park = find_hotels_near_location(116.3971285, 39.916149, 100, 5)
for hotel in hotels_near_beihai_park:
print(hotel)
这段代码首先连接到MongoDB数据库,然后定义了一个函数find_hotels_near_location
,该函数接受经度、纬度、最大距离和最大结果数作为参数,并构造了一个查询来查找特定地理位置附近的酒店。最后,我们提供了一个示例来查询北海公园附近的酒店。
评论已关闭