1、mongodb:文件資料庫,儲存的是文件(bson→json的二進位製化),json資料儲存的就是js中物件和陣列。
2、mongodb特點:內部執行引擎為js直譯器,把文件儲存成bson結構,在查詢時轉換為js物件,並可以通過熟悉的js語法來操作。
3、mongo和傳統型資料庫的不同:
4、mongodb資料庫bin目錄下的檔案意義:
5、mongo入門命令:
6、如何建立庫:
mongodb的庫是隱式建立,你可以use乙個不存在的庫,然後在該庫下建立collection,即可建立庫
use dbname ---ues乙個不存在的庫其實在mongodb中,collection也是可以隱式建立的。db.createcollection(『collectionname』) ---在該庫下面建立集合,就可以建立乙個資料庫
db.collectionname.insert(document)如何刪除資料庫和集合?
db.collectionname.drop()//刪除集合1、增:insert方法db.dropdatabase()//刪除資料庫
首先要明確一點,mongodb儲存的是文件,文件其實就是json格式的物件。
語法:db.collectionname.insert(document)
增加單篇文件:
db.collectionname.insert()
增加單個文件並指定id:
db.collectionname.insert()
增加多個文件:
db.collectionname.insert([,
])2、查:find方法
語法:db.collection.find(查詢表示式,查詢的列);
db.collection.find(表示式,);
在查詢列的引數中,1表示顯示,0表示不顯示(_id屬性預設是顯示的)。
常用方法:
·limit():
db.collection.find().limit(number);
·skip():
db.collection.find().skip(number);
·sort():
db.collection.find().sort();
·count():
db.collection.find().count();
3、查詢表示式
· : 等於
db.collection.find(,);
· $lt 小於
db.collection.find(},);
· $lte 小於等於
· $gt 大於
· $gte 大於等於
· $ne 不等於
db.collection.find(},)
· $in 存在其中乙個或多個值
db.collection.find(},)
· $nin 不存在陣列中的值
· $all 陣列中的值全存在
db.collection.find(},)
· $exists 含有字段
db.collection.find(},)
· $nor 所有條件都不滿足
db.collection.find(,)
· $and 所有條件都滿足
db.collection.find(,)
· $or 條件至少滿足乙個
db.collection.find(,)
4、刪:remove方法
db.collection.remove(查詢表示式,選項)
選項是指,是否只刪除一行,預設為false
如果不寫查詢表示式,collection中的所有資料都將被刪掉。
5、改:update方法
db.collection.update(查詢表示式,新值,選項)
修改時的賦值表示式:
· $set 修改某列的值
· $unset 刪除某個列
· $rename 重新命名某個列
· $inc 增長某個列
選項引數:
· upsert 指沒有匹配的行,則直接插入該行,值為true或false
· multi 指修改多行,預設為false,如果想修改多行,則設為true
6、聚合函式
聚合主要用於處理資料(諸如統計平均值,求和等),並返回計算後的資料結果。
db.collection.aggregate([,,...])
mongodb的聚合管道將mongodb文件在乙個管道處理完畢後將結果傳遞給下乙個管道處理,管道操作是可以重複的。
聚合框架中的常用管道操作:
· $project : 修改輸入文件的結構。可以用來重新命名、增加或刪除域,也可以用於建立計算結果以及巢狀文件。
· $match : 用來過濾資料,只輸出符合條件的文件。$match使用mongodb的標準查詢操作。
· $limit : 用來限制mongodb聚合管道返回的文件數。
· $skip : 在聚合管道中跳過指定數量的文件,並返回餘下的文件。
· $group : 將集合中的文件分組,可用於統計結果。
· $sort : 將文件排序後輸出。
group中的操作表示式:
1、游標的概念及作用:
mongo的游標相當於python中的迭代器。通過將查詢結構定義給乙個變數,這個變數就是游標。通過這個游標,可以每次獲取乙個資料。
2、游標的宣告:
var cursor=db.bar.find()
3、游標的操作:
cursor.hasnext() 判斷游標是否還有下個資料
cursor.next() 取出游標的下乙個單元
4、cursor.foreach(**函式):
var gettile = function(obj)
var cursor=db.goods.find()
cursor.foreach(gettile)
5、游標在分頁中的應用:
在mongodb中,用skip和limit方法實現
例:var cursor=db.bar.find().skip(90).limit(20)
優化查詢的首要考慮的就是索引。
·索引提高查詢速度,降低寫入速度
·在mongodb中,索引可以按欄位公升序/降序來建立,便於排序
·預設是用btree來組織索引檔案,在2.4版本後,也允許建立hash索引。
常用命令:
(1)檢視當前索引狀態:db.collection.getindexes()
(2)建立普通單列索引:db.collection.ensureindex()//1為正序,-1為逆序
(3)刪除單個索引:db.collection.dropindex()
(4)刪除所有索引:db.collection.dropindexes()
(5)建立多列索引:db.collection.ensureindex()
(6)雜湊索引:
db.collection.ensureindex()
(7)唯一索引:
db.collection.ensureindex(,)
1、通用選項:
--host 主機
--port 埠號
-u 使用者名稱
-p 密碼
2、mongoexport匯出(json格式或csv格式):
-d 庫名
-c 表名
-f 列名
-q 查詢條件
-o 匯出至位址及檔名
--type csv 匯出csv格式(便於二和傳統資料庫交換資料)
3、mongoimport匯入:
-d 待匯入的資料庫
-c 待匯入的表(不存在的話會自己建立)
--file 備份檔案路徑
4、mongodump匯出二進位制bson結構的資料及其索引資訊:
-d 庫名
-c 表名
規律:匯出的檔案放在database命名的目錄下
每個表匯出兩個檔案,分別是bson結構的檔案和json的索引資訊
若不宣告表名,匯出所有的表
5、mongorestore匯入二進位制檔案:
-d 庫名
-c 表名
--dir 路徑
爬蟲基礎知識
大資料時代,要進行資料分析,首先要有資料來源。而學習爬蟲,可以讓我們獲取更多的資料來源,並且這些資料來源可以按我們的目的進行採集,去掉很多無關資料。網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬客戶端傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。只要是瀏覽器能做的事...
爬蟲基礎知識整理
網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬客戶端 主要指瀏覽器 傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。網路爬蟲就是根據網頁的位址來尋找網頁的,也就是url。舉乙個簡單的例子,我們在瀏覽器的位址列中輸入的字串就是url,例如 url就是同意資源定位符 un...
爬蟲基礎知識(陸)
一 程式 程序與執行緒 程式 相當於乙個應用。程序 程式執行資源 記憶體資源 的最小分配單位,乙個程式可以有多個程序。執行緒 cpu最小的排程單位,必須依賴程序而存在。執行緒沒有獨立資源,所有執行緒共享該程序的全部資源。執行緒的劃分尺度比程序小。二 為什麼多程序和多執行緒可以提高程式的執行速度?1 ...