Time of Update: 2017-01-18
Mongodb是針對大資料量環境下誕生的用於儲存大資料量的非關係型資料庫,針對大量的資料,如何進行統計操作至關重要,那麼如何從Mongodb中統計一些資料呢?在Mongodb中,給我們提供了三種用於資料彙總的方式:(1)簡單的使用者彙總函式;(2)使用aggregate進行統計;(3)使用mapReduce進行統計;今天我們首先來講講mapReduce是如何統計,在後續的文章中,將另起文章進行相關說明。MapReduce是啥呢?以我的理解,其實就是對集合中的各個滿足條件的文檔進行預先處理,整理出
Time of Update: 2017-01-18
group by date 彙總查詢日期 統計每天資料(資訊量)1 { "_id" : ObjectId("557ac1e2153c43c320393d9d"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:26:26.000Z") } 2 { "_id" : ObjectId("557ac1ee153c43c320393d9e"), "msgType" : "text",
Time of Update: 2017-01-18
MongoDB 主從同步設定關於MongoDB的安裝及啟動參數說明可以參考我之前轉載的《Ubuntu安裝MongoDB》與《Mongodb啟動命令mongod參數說明》主從設定Master: 192.168.111.103 Port:8001Slave:192.168.111.104 Port:8001啟動Master複製代碼 代碼如下:mongod --dbpath /data/masterdb/ --master --oplogSize 64 --port 8001 --fork
Time of Update: 2017-01-18
// 準備測試資料db.user.drop();for(var i=10; i< 100; i++) { db.user.insert({ name:"user" + i, age : Math.floor(Math.random()*10)+ 20, sex : Math.floor(Math.random()*3)%2 ==0 ? 'M' : 'F', chinese : Math.floor(Math.random()*50)+50,
Time of Update: 2017-01-18
一、mapreduce是根據map函數裡調用的emit函數的第一個參數來進行分組的Map-Reduce是一種計算模型,簡單的說就是將大批量的工作(資料)分解(MAP)執行,然後再將結果合并成最終結果(REDUCE)。使用 MapReduce 要實現兩個函數 Map 函數和 Reduce 函數, Map 函數調用 emit(key, value), 遍曆 collection 中所有的記錄, 將key 與 value 傳遞給 Reduce 函數進行處理。Map 函數必須調用 emit(key,
Time of Update: 2017-01-18
在MongoDB中,db.collection.remove()方法用來從文檔中刪除文檔。可以從一個集合中刪除所有文檔,刪除匹配一個條件的所有文檔,或者限制操作只刪除一條文檔。刪除所有文檔:刪除集合中的所有文檔,需要傳遞一個空的query文檔{}給remove()方法。remove()方法不會刪除索引。下面是從inventory集合中刪除所有文檔的例子:複製代碼
Time of Update: 2017-01-18
1. 啟動和停止MongoDB: 執行mongod命令啟動MongoDB伺服器。mongod有很多可配置的選項,我們通過mongod --help可以查看所有選項,這裡僅介紹一些主要選項: 複製代碼 代碼如下: --dbpath:
Time of Update: 2017-01-18
上周在 ruby-china 上發了文章《MongoDB 那些坑》,反映相當熱烈,許多回複很有見地,其中一位童鞋深入的提到 MongoDB 建索引方法的問題,引發我更深入的瞭解了 MongoDB 建索引的方法和一些注意事項。在 《MongoDB 那些坑》中提到,在前台直接運行建立索引命令的話,將造成整個資料庫阻塞,因此索引建議使用 background 的方式建立。但是這也會帶來一定的問題,在 2.6 版本之前,在 secondary server 中即使使用 background
Time of Update: 2017-01-18
dump.js複製代碼 代碼如下:var c = db.user.find({nick_name:{$exists:true,$ne:''}}).limit(100);while(c.hasNext()) { printjson(c.next());}mongo 192.168.2.201:41211/dc_user dump.js >
Time of Update: 2017-01-18
1.增加新的設定檔,並啟動mongod執行個體複製代碼 代碼如下: #14mkdir -p /data/mongodb/shard311./mongod -f /opt/mongodb-linux-x86_64-2.2.0/conf/mongod_3.conf #16mkdir -p /data/mongodb/shard32./mongod -f
Time of Update: 2017-01-18
總結一下如何將mongoDB安裝為WinXP下系統服務。使用的命令如下:複製代碼 代碼如下:Microsoft Windows XP [版本 5.1.2600] (C) 著作權 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>mongod -dbpath C:\mongo\MongoDB\mongo\data --logpath=C:\mongo\MongoDB\mongo\logs\mongodb.log
Time of Update: 2017-01-18
首先安裝MongoDB,在終端輸入:複製代碼 代碼如下:sudo apt-get install mongodb 然後啟動資料庫MongoDB:複製代碼 代碼如下:mongod 可能會出現這樣的錯誤:複製代碼 代碼如下:mongod --help for help and startup options mongod: symbol lookup error: mongod: undefined symbol:
Time of Update: 2017-01-18
使用Skip和limit可以如下做資料分頁:Code: page1 = db.things.find().limit(20) page2 = db.things.find().skip(20).limit(20) page3 = db.things.find().skip(40).limit(20) 備忘:可用於分頁,limit是pageSize,skip是第n-1頁*pageSize (n-1表示幾 第1,2...頁)
Time of Update: 2017-01-18
1. 建立一個超級使用者use admindb.createUser( { user: "adminUserName", pwd: "userPassword", roles: [ { roles: "userAdminAnyDatabase", db: "admin" } ]
Time of Update: 2017-01-18
建立索引有時會阻塞新的串連當與mongodb複製集建立串連時,驅動程式首先嘗試串連並驗證叢集中每個非 隱藏的節點。如果一個節點是“down”狀態,將跳過。然而,如果一個節點是“UP”狀態,但是持有寫鎖,那麼驗證將沒法執行下去,因此該驅動程式將被掛起了。在mongodb
Time of Update: 2017-01-18
1,錯誤做法,直接更新表> db.system.users.update({"_id" : ObjectId("529e67553992b24438d5e315")},{"user":"tank2","readOnly" : false,"pwd":"123"}) > db.system.users.find(); { "_id" : ObjectId("529e5f8474b4c660718a70f3"), "user" : "tank1", "readOnly" : false,
Time of Update: 2017-01-18
一,利用rs.reconfig,來添加,刪除節點1,添加節點repmore:PRIMARY> config = {_id:"repmore",members:[{_id:0,host:'127.0.0.1:27017',priority :2},{_id:1,host:'127.0.0.1:27018',priority:1}]}; //添加節點 repmore:PRIMARY> rs.reconfig(config); //使配置生效 repmore:PRIMARY>
Time of Update: 2017-01-18
mongodb中的遊標使用樣本如下: 假設執行如下操作:db.XXX.remove();db.XXX.insert({"name":"BuleRiver1", "age":27});db.XXX.insert({"name":"BuleRiver2", "age":23});db.XXX.insert({"name":"BuleRiver3", "age":21});使用find()返回一個遊標:var cursor = db.XXX.find();while
Time of Update: 2017-01-18
PHP 擴充mongon.mod.dll下載http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows然後php.ini添加 extension=php_mongo.dll最後phpinfo() 尋找到表標PHP已經內建了mongo功能,你就可以操作下面的代碼(但是你必須有安裝mongodb伺服器)一、串連資料庫使用下面的代碼建立一個資料庫連結複製代碼
Time of Update: 2017-01-18
我知道的關係型資料庫都是有許可權控制的,什麼使用者能訪問什麼庫,什麼表,什麼使用者可以插入,更新,而有的使用者只有讀取許可權。例如:mysql安裝配置好後,有一個內建的mysql資料庫,裡面有一張user表,用來存放使用者,以及使用者權限,而mongodb這個最像關係型的資料庫,有沒有這樣的表呢。一、掌握許可權,理解下面4條基本上就差不多1、mongodb是沒有預設管理員帳號,所以要先添加管理員帳號,在開啟許可權認證。2、切換到admin資料庫,添加的帳號才是管理員帳號。3、使用者只能在使用者所