爬蟲基礎知識(柒)

2022-07-25 19:45:16 字數 4599 閱讀 5537

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乙個不存在的庫

db.createcollection(『collectionname』) ---在該庫下面建立集合,就可以建立乙個資料庫

其實在mongodb中,collection也是可以隱式建立的。

db.collectionname.insert(document)
如何刪除資料庫和集合?

db.collectionname.drop()//刪除集合

db.dropdatabase()//刪除資料庫

1、增:insert方法

首先要明確一點,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 ...