手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

关于mongo的GEO相关笔记

很乱。我自己明白即可,三种查询条件。

{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的玩意,也是一个笔记。

Tags: mongo, geo

dayone

一咬牙,买了一个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.
至少,我目前觉得还是物有所值。每天做了哪些事情都记录下来了。。。很好。很蛋定

Tags: mac, ios

mongo中的group by

在mysql里面,我们偶尔会有这样的sql出现:
select userid,count(userid) as cnt from xxxxxtable group by userid;

这样的sql在mongo里怎么实现呢?其实也相对比较简单

PHP代码
  1. <?php  
  2. $mongo = new Mongo();  
  3. $mongo->selectDB('xxx');//库  
  4. $collection = $mongo->selectCollection('表');  
  5.   
  6. $field = array('userid'=>1);  
  7. $cnt = array('cnt'=>0);  
  8. $result = $collection->group($field,$cnt,"function(obj,pref){pref.cnt++;}");  

打印出来的结果也很方便识别:

XML/HTML代码
  1. Array  
  2. (  
  3.     [retval] => Array  
  4.         (  
  5.             [0] => Array  
  6.                 (  
  7.                     [userid] => 11111  
  8.                     [cnt] => 2  
  9.                 ) 
  10.             //省略
  11.         )  
  12.   
  13.     [count] => 21  
  14.     [keys] => 11  
  15.     [ok] => 1  
  16. )  

果然轻轻松松啊

Tags: mongo, mysql

什么是MRD和PRD

MRD(Market Requirements Document),是指市场需求文档。
MRD文档主要侧重于市场机会的分析,得出结论“就当前市场情况而言,我们可以做什么”;

PRD(Product Requirements Document),是指产品需求文档。
PRD侧重于整个产品的规划,比上述Market Research阶段的MRD文档要细化一些。

作为一个产品经理,还是会需要了解这些。虽然。。。MRD在很多单位都不需要做。那些老板们都帮你定好了。。。只是你还是自己也需要了解下这方面。

他山之石: 好的产品经理需要哪些素质?

这是一篇来自知乎的文章,原文地址是好的产品经理需要哪些素质? ,主要是说了些关于产品经理的事情,而且也颇有些道理,所以我就。。。。ctrl+c,ctrl+v了一下。

原文是这样说的:
带过一些产品专员和产品经理,其实真正在很多公司当中,各位口中所说的懂市场、懂设计、懂用户、懂运营、懂项目、懂技术的,能有几个呢?

人的精力永远都是有限的,掌握其中一些领域,已经实属难得了,各位做产品多年,又自认为自己这些专业技能又能理解多深呢?
产品经理的基本功之一,就是学会用二两去拨千斤,用简单,再简单的方式去解决问题。对于自己的弱项,会巧妙地通过团队来补齐。

曾经我想,产品专员如何晋升为产品经理,又或者说产品经理是否称职,应该怎么判断?
直到多次想把产品交付出去让专员来担任经理的时候,我才发现问题所在。一个产品必定有一个产品经理,但是不是赋予一个人产品经理这个头衔,他就是产品经理。当带着头衔的产品经理无法对这个产品尽心尽力负责的时候,最终做了产品经理工作的,可能会是他的上级。

产 品经理最需要的素质,就是能够真正担负起一个产品的责任。当客户反馈出BUG的时候,能够立即去跟进处理;当客户觉得体验差的时候,能够感到羞愧,并且深 入了解,做到更好;能够不需要人在背后推动,自己也能够去寻找问题,寻找一切能够让产品变得更完美的改进方向;在产品需要你的时候,你能够第一时间跳出 来。这就够了。

总结一句话,就是产品专员跟产品经理区别在于责任心,三流产品经理跟二流产品经理区别在于专业技能,二流产品经理跟一流产品经理区别在于思想。
---EOF---
最后一句话就说了一些关于产品经理等级的事情。思想,才是一个产品的核心。你觉得呢?