很乱。我自己明白即可,三种查询条件。
{loc:{"$near":[121.417397,31.204075]} }
{loc : {"$within" : {"$center" : [ [121.417397,31.204075], 5]}} }
db.places.find({loc:{ $near:[ 30.28009,120.12857],$maxDistance:5}}).limit(20)
上述的内容参考与某个网站,它的基本内容如下:
最近一直在做基于LBS的项目,地标的坐标索引和基于坐标查询,一直没找到一种简单方便的方法,在做mongo索引优化的时发现竟然有Geo的索引
创建字段
建议使用方式:{ loc : [ longitude , latitude] }
也可以:{ loc : { lon :longitude, lat:latitude } }
Loc自己决定,我用poi的
建立索引
注意:每个Collection只能建立一个geospatial索引
db.places.ensureIndex( { loc : “2d” } , { min : -500 , max : 500 } )
如果db.places.ensureIndex( { loc : “2d” }),
默认值的范围是:-180到180,也就是经纬度的范围
查询
注:1.默认会按距离排序;
2.转换 111.12 距离(一度是大约 111.12 公里)使用公里,或由 69 (对于英里)
默认取100条距离最近的点,注:默认是limit(100)
db.collection.find({loc:{$near :[ 30.28009,120.12857]}})
取正方形范围的坐标点,注意:5是坐标系的5,也就是经纬度的5,按111.12换算成公里
db.places.find({loc:{ $near:[ 30.28009,120.12857],$maxDistance:5}}).limit(20)
取指定半径的点,注意:半径5是坐标系的5,也就是经纬度的5,按111.12换算成公里
以5为半径的圆:{“Coordinate” : {“$within” : {“$center” : [ [30.28009,120.12857], 5]}} }
---------
纯笔记,别多想,测试了一下。比现在使用的好多了,我现在是:
$criteria->order = new \CDbExpression("ACOS(SIN(({$lat} * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS(({$lat} * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) *COS(({$lng} * 3.1415) / 180 - (lng * 3.1415) / 180 ) ) * 6380 asc,last_activity_time DESC");
不要多想,我是用的Yii的玩意,也是一个笔记。
一咬牙,买了一个APP:day one。用下来实在感觉是不错。所以才买的。。。
dayone的mac app的icloud的同步确实 有点麻烦。后来我没辙。选择了dropbox来进行同步。太悲催了。
icloud同步请参考:
http://dayoneapp.com/support/icloud/
dropbox同步请参考:
https://dayone.zendesk.com/entries/21984318-how-do-i-setup-dropbox-syncing
后记:
TNND,原来是破解版对icloud的同步做了限制,换成了正版就好了。一下子100块没了。mac上68,ios上30.
至少,我目前觉得还是物有所值。每天做了哪些事情都记录下来了。。。很好。很蛋定
在mysql里面,我们偶尔会有这样的sql出现:
select userid,count(userid) as cnt from xxxxxtable group by userid;
这样的sql在mongo里怎么实现呢?其实也相对比较简单
PHP代码
- <?php
- $mongo = new Mongo();
- $mongo->selectDB('xxx');
- $collection = $mongo->selectCollection('表');
-
- $field = array('userid'=>1);
- $cnt = array('cnt'=>0);
- $result = $collection->group($field,$cnt,"function(obj,pref){pref.cnt++;}");
打印出来的结果也很方便识别:
XML/HTML代码
- Array
- (
- [retval] => Array
- (
- [0] => Array
- (
- [userid] => 11111
- [cnt] => 2
- )
- //省略
- )
-
- [count] => 21
- [keys] => 11
- [ok] => 1
- )
果然轻轻松松啊
MRD(Market Requirements Document),是指市场需求文档。
MRD文档主要侧重于市场机会的分析,得出结论“就当前市场情况而言,我们可以做什么”;
PRD(Product Requirements Document),是指产品需求文档。
PRD侧重于整个产品的规划,比上述Market Research阶段的MRD文档要细化一些。
作为一个产品经理,还是会需要了解这些。虽然。。。MRD在很多单位都不需要做。那些老板们都帮你定好了。。。只是你还是自己也需要了解下这方面。