我已将http://www.maxmind.com/en/city(GeoIP City)导入MongoDB。有两个集合:块和位置。
块具有ip范围的开始和ip范围的结束以及整数(稍后将使其成为MongoID),表示位置集合中的文档。
ip address in作为NumberLong存储在blocks集合中。
我得到一个ip地址并用php函数iptolong(http://php.net/manual/en/function.ip2long.php)将其转换为long,给我一个像3758096128这样的值
现在我需要创建一个查询,从块集合中的正确文档中获取id,然后在位置集合中查找位置(在id的帮助下)
我可以明显地做两个查询,但这不是很有效。
我的第一步就是(在PHP中):
$query = array(
'startIpNum' => array('$gte' => $ipLong),
'endIpNum' => array('$lte' => $ipLong),
);
(仍在弄清楚为什么上面的查询不会返回任何数据)
但是从两个集合中获取数据的过程中的下一步是什么?