最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析:使用php mongodb擴(kuò)展時(shí) 需要注意的事項(xiàng)

 更新時(shí)間:2013年06月18日 11:19:22   作者:  
本篇文章是對(duì)使用php mongodb擴(kuò)展時(shí),需要注意的事項(xiàng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
最近在使用php的mongo 擴(kuò)展進(jìn)行數(shù)據(jù)統(tǒng)計(jì)計(jì)算,其中有一個(gè)時(shí)間戳字段,由于精確到了毫秒,長度有13位,但由于開始的時(shí)候是以字符串的形式存儲(chǔ):
復(fù)制代碼 代碼如下:

{ "_id" : ObjectId("504eea97e4b023cf38e34039"), "in_ts" : NumberLong("1347349143699"), "log" : { "guid" : "4D1F3079-7507-F4B0-E7AF-5432D5D8229D", "p" : "View_Prop_YepPage_Zheng", "cid" : "11", "url" : "http://shanghai.haozu.com/rental/broker/n/10481780", "rfpn" : "Listing_V2_IndexPage_All", "site" : "haozu", "agent" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)", "stamp" : "1347349162159", "cip" : "116.226.70.44", "referer" : "http://shanghai.haozu.com/shop/1464934/", "cstamp" : "1347349323125", "sessid" : "FA798056-F9E7-F961-41E0-CC95C850FA47", "uguid" : "C00FF55B-3D3D-4B31-4318-12345B0DBE64", "pn" : "View_Prop_YepPage_Zheng", "cstparam" : { "proId" : NumberLong(10481780), "brokerId" : "326792", "tradeType" : "2", "userType" : "0", "channel" : "site", "entry" : "1", "COMMID" : "1666" } }, "out_ts" : NumberLong("1347349466083"), "rule" : 0, "status" : "ok", "txid" : 0 }

后來改成數(shù)字格式:
復(fù)制代碼 代碼如下:

{ "_id" : ObjectId("504eea97e4b023cf38e34039"), "in_ts" : NumberLong("1347349143699"), "log" : { "guid" : "4D1F3079-7507-F4B0-E7AF-5432D5D8229D", "p" : "View_Prop_YepPage_Zheng", "cid" : "11", "url" : "http://shanghai.haozu.com/rental/broker/n/10481780", "rfpn" : "Listing_V2_IndexPage_All", "site" : "haozu", "agent" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)", "stamp" : NumberLong("1347349162159"), "cip" : "116.226.70.44", "referer" : "http://shanghai.haozu.com/shop/1464934/", "cstamp" : "1347349323125", "sessid" : "FA798056-F9E7-F961-41E0-CC95C850FA47", "uguid" : "C00FF55B-3D3D-4B31-4318-12345B0DBE64", "pn" : "View_Prop_YepPage_Zheng", "cstparam" : { "proId" : NumberLong(10481780), "brokerId" : "326792", "tradeType" : "2", "userType" : "0", "channel" : "site", "entry" : "1", "COMMID" : "1666" } }, "out_ts" : NumberLong("1347349466083"), "rule" : 0, "status" : "ok", "txid" : 0 }

為字符串時(shí),使用下面的查詢是正常的
復(fù)制代碼 代碼如下:

$query = array ('log.stamp' => array ('$gte' => ‘1347346800000', '$lt' => ‘1347350400000'));

但是改為數(shù)字后,使用下面的查詢,死活沒有結(jié)果,但是直接在mongo客戶端直接查詢是有結(jié)果的:
復(fù)制代碼 代碼如下:

db.haozu_success.find({'log.stamp':{$gte:1347346800000,$lt:1347350400000}})

php手冊(cè)上也是這么個(gè)用法:
復(fù)制代碼 代碼如下:

$query = array ('log.stamp' => array ('$gte' => 1347346800000, '$lt' => 1347350400000));

花了好大一會(huì)找原因,開始時(shí)懷疑是php擴(kuò)展的bug導(dǎo)致,經(jīng)過一番思考。突然想到可能是類型問題導(dǎo)致,發(fā)現(xiàn)手冊(cè)上有Types 介紹,所以正確的用法如下:
復(fù)制代碼 代碼如下:

$query = array ('log.stamp' => array ('$gte' => new MongoInt64($time_range['start']), '$lt' => new MongoInt64($time_range['end'])));

另外,在使用mapreduce進(jìn)行數(shù)據(jù)統(tǒng)計(jì)時(shí),為了防止cursor出現(xiàn)超時(shí)異常,還需要設(shè)置一下超時(shí)時(shí)間
復(fù)制代碼 代碼如下:

$map = new MongoCode ( '
                function(){
                    var prop_id=this.log.cstparam.proId;
                    var key=this.log.site+prop_id
                    emit(key,{"channel":this.log.site,"prop_id":prop_id,"count":1});
                }
                ' );
        $reduce = new MongoCode ( '
                function(key,emits){
                    var total=0;
                    for(var i in emits){
                        total+=emits[i].count;
                    }
                    return {"channel":emits[0].channel,"prop_id":eval(emits[0].prop_id),"count":total};
                }
                ' );
$this->mongo_db->command ( array ('mapreduce' => $collection_name, 'map' => $map, 'reduce' => $reduce, 'out' => $tmp_result, 'query' => $query),array('timeout'=>self::MONGO_CURSOR_TIMEOUT) );

相關(guān)文章

  • PHP5.3.1 不再支持ISAPI

    PHP5.3.1 不再支持ISAPI

    今天發(fā)現(xiàn)PHP5.3.1發(fā)布了,但是安裝的時(shí)候沒有找到ISAPI模式,安裝后也沒有找到php5isapi.dll這個(gè)文件,找了好久,終于弄清楚。
    2010-01-01
  • 詳解PHP的7個(gè)預(yù)定義接口

    詳解PHP的7個(gè)預(yù)定義接口

    本文介紹了PHP的7個(gè)預(yù)定義接口,感興趣的同學(xué),可以參考下,并且親自試驗(yàn)一下,理解其原理。
    2021-05-05
  • PHP郵件發(fā)送類PHPMailer用法實(shí)例詳解

    PHP郵件發(fā)送類PHPMailer用法實(shí)例詳解

    這篇文章主要介紹了PHP郵件發(fā)送類PHPMailer用法,詳細(xì)的講述了安裝及配置的方法與功能實(shí)現(xiàn)代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09
  • php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法

    php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法

    這篇文章主要介紹了php自動(dòng)識(shí)別文字編碼并轉(zhuǎn)換為目標(biāo)編碼的方法,涉及php針對(duì)當(dāng)前編碼的判斷與對(duì)應(yīng)的編碼轉(zhuǎn)換實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-08-08
  • PhpStrom使用Xdebug技巧圖文教程

    PhpStrom使用Xdebug技巧圖文教程

    這篇文章主要為大家介紹了PhpStrom使用Xdebug技巧圖文教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • MyEclipse常用配置圖文教程

    MyEclipse常用配置圖文教程

    本文主要是記錄一些有用的設(shè)置技巧,并且是圖文并茂,像創(chuàng)建項(xiàng)目,創(chuàng)建類,設(shè)置工作空間等在這里就不做介紹了,而且之前的文章也有涉獵。
    2014-09-09
  • 9條PHP編程小知識(shí)及易犯的小錯(cuò)誤

    9條PHP編程小知識(shí)及易犯的小錯(cuò)誤

    這篇文章主要介紹了9條PHP編程必備知識(shí),本文講解了變量聲明、解析錯(cuò)誤、常見的錯(cuò)誤、MySQL錯(cuò)誤、注意echo和print的區(qū)別、注意空字符串('')和NULL的區(qū)別、分清==(等于)和===(全等于)的區(qū)別等內(nèi)容,需要的朋友可以參考下
    2015-01-01
  • 使用php+Ajax實(shí)現(xiàn)唯一校驗(yàn)實(shí)現(xiàn)代碼[簡單應(yīng)用]

    使用php+Ajax實(shí)現(xiàn)唯一校驗(yàn)實(shí)現(xiàn)代碼[簡單應(yīng)用]

    使用php+Ajax實(shí)現(xiàn)唯一校驗(yàn)實(shí)現(xiàn)代碼[簡單應(yīng)用],前臺(tái)用ajax后臺(tái)用php,需要的朋友可以參考下。
    2011-11-11
  • 深入理解PHP之require/include順序 推薦

    深入理解PHP之require/include順序 推薦

    在大型的Web項(xiàng)目中, include_path是一個(gè)模塊化設(shè)計(jì)的根本中的根本(當(dāng)然,現(xiàn)在也有很多基于autoload的設(shè)計(jì), 這個(gè)不影響本文的探討), 但是正是因?yàn)閕nclude_path, 經(jīng)常會(huì)讓我們遇到一些因?yàn)闆]有找到正確的文件而導(dǎo)致的看似”詭異”的問題.
    2011-01-01
  • php簡單實(shí)現(xiàn)sql防注入的方法

    php簡單實(shí)現(xiàn)sql防注入的方法

    這篇文章主要介紹了php簡單實(shí)現(xiàn)sql防注入的方法,涉及addslashes函數(shù)的使用及正則過濾的相關(guān)技巧,非常簡單實(shí)用,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

古田县| 明水县| 宣汉县| 哈巴河县| 简阳市| 且末县| 乌兰浩特市| 石家庄市| 桑植县| 道真| 周宁县| 酒泉市| 南昌县| 榕江县| 南皮县| 永顺县| 竹山县| 兴宁市| 元谋县| 宁南县| 安平县| 运城市| SHOW| 霍邱县| 闻喜县| 宁晋县| 宜兰市| 齐河县| 广宗县| 开江县| 衡阳县| 胶南市| 安平县| 亚东县| 盘山县| 灵川县| 手机| 南城县| 翼城县| 栾川县| 昭通市|