很乱。我自己明白即可,三种查询条件。
{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在很多单位都不需要做。那些老板们都帮你定好了。。。只是你还是自己也需要了解下这方面。
这是一篇来自知乎的文章,原文地址是好的产品经理需要哪些素质? ,主要是说了些关于产品经理的事情,而且也颇有些道理,所以我就。。。。ctrl+c,ctrl+v了一下。
原文是这样说的:
带过一些产品专员和产品经理,其实真正在很多公司当中,各位口中所说的懂市场、懂设计、懂用户、懂运营、懂项目、懂技术的,能有几个呢?
人的精力永远都是有限的,掌握其中一些领域,已经实属难得了,各位做产品多年,又自认为自己这些专业技能又能理解多深呢?
产品经理的基本功之一,就是学会用二两去拨千斤,用简单,再简单的方式去解决问题。对于自己的弱项,会巧妙地通过团队来补齐。
曾经我想,产品专员如何晋升为产品经理,又或者说产品经理是否称职,应该怎么判断?
直到多次想把产品交付出去让专员来担任经理的时候,我才发现问题所在。一个产品必定有一个产品经理,但是不是赋予一个人产品经理这个头衔,他就是产品经理。当带着头衔的产品经理无法对这个产品尽心尽力负责的时候,最终做了产品经理工作的,可能会是他的上级。
产 品经理最需要的素质,就是能够真正担负起一个产品的责任。当客户反馈出BUG的时候,能够立即去跟进处理;当客户觉得体验差的时候,能够感到羞愧,并且深 入了解,做到更好;能够不需要人在背后推动,自己也能够去寻找问题,寻找一切能够让产品变得更完美的改进方向;在产品需要你的时候,你能够第一时间跳出 来。这就够了。
总结一句话,就是产品专员跟产品经理区别在于责任心,三流产品经理跟二流产品经理区别在于专业技能,二流产品经理跟一流产品经理区别在于思想。
---EOF---
最后一句话就说了一些关于产品经理等级的事情。思想,才是一个产品的核心。你觉得呢?