1. 程式人生 > >mongoDB學習筆記--shell基本語法(二)

mongoDB學習筆記--shell基本語法(二)

mongoDB Shell:

啟動mongoDB shell(我已經把mongodb\bin加入path環境變數):mongo

由於Mongo是個javaScript Shell,通過線上檢視JavaScript的文件能獲得更多幫助。shell本身內建了幫助文件,可以通過help命令檢視

建立資料庫(MongoDB use DATABASE_NAME):

use DATABASE_NAME
檢視當前資料庫:db

檢視所有資料庫:

show dbs
local0.78125GB
test       0.23012GB
注意:這裡是看不到剛剛建立的資料庫的,如果想要看見,必須插入至少一個檔案

切換資料庫:use dbName

刪除資料庫:MongoDB db.dropDatabase()

注意:需要先use切換至需要刪除的資料庫

建立集合:MongoDB db.createCollection(name, options)

兩個引數說明:

引數 型別 描述
Name String 要建立的集合名稱
Options Document (可選)指定有關記憶體大小和索引選項
Options說明:
欄位 型別 描述
capped Boolean (可選)如果為true,則啟用封頂集合。封頂集合是固定大小的集合,會自動覆蓋最早的條目,當它達到其最大大小。如果指定true,則需要也指定尺寸引數。
autoIndexID Boolean (可選)如果為true,自動建立索引_id欄位的預設值是false。
size number (可選)指定最大大小位元組封頂集合。如果封頂如果是 true,那麼你還需要指定這個欄位。
max number (可選)指定封頂集合允許在檔案的最大數量。

示例:

1:建立只有必選引數的集合

db.createCollection("mycollection")
2:建立帶有option引數的集合:
db.createCollection("mycol",{ capped :true, autoIndexID :true, size :
6142800, max :10000})
3:當然也不必非要用createCollection建立,當插入一些檔案MongoDB會自動建立集合:
>db.zidong.insert({"name":"ding"})>show collections
mycol
mycollection
system.indexes
yiibai

檢視所有集合:show collections

刪除集合:MongoDB  db.collectionName.drop()

說明:drop() 方法將返回 true,如果選擇成功收集被丟棄,否則將返回 false

資料型別:

String : 這是最常用的資料型別來儲存資料。在MongoDB中的字串必須是有效的UTF-8。

Integer : 這種型別是用來儲存一個數值。整數可以是32位或64位,這取決於您的伺服器。

Boolean : 此型別用於儲存一個布林值 (true/ false) 。

Double : 這種型別是用來儲存浮點值。

Min/ Max keys : 這種型別被用來對BSON元素的最低和最高值比較。

Arrays : 使用此型別的陣列或列表或多個值儲存到一個鍵。

Timestamp : 時間戳。這可以方便記錄時的檔案已被修改或新增。

Object : 此資料型別用於嵌入式的檔案。

Null : 這種型別是用來儲存一個Null值。

Symbol : 此資料型別用於字串相同,但它通常是保留給特定符號型別的語言使用。

Date : 此資料型別用於儲存當前日期或時間的UNIX時間格式。可以指定自己的日期和時間,日期和年,月,日到建立物件。

Object ID : 此資料型別用於儲存文件的ID。

Binary data : 此資料型別用於儲存二進位制資料。

Code : 此資料型別用於儲存到文件中的JavaScript程式碼。

Regular expression : 此資料型別用於儲存正則表示式


插入文件:insert() 或 save() 方法

這裡 mycol  是集合的名稱,如前面的教程中建立。如果集合在資料庫中不存在,那麼MongoDB 將建立此集合,然後把它插入文件。

插入文件中,如果我們不指定_id引數,然後MongoDB 本文件分配一個獨特的ObjectId。

_id 是12個位元組的十六進位制數,唯一一個集合中的每個文件。 12個位元組被劃分如下:

_id:ObjectId(4 bytes timestamp,3 bytes machine id,2 bytes process id,3 bytes incrementer)
要插入單個查詢的多個文件,可以傳遞一個文件陣列 給insert() 命令。 

查詢文件: find() 

find() 方法將在非結構化的方式顯示所有的檔案。

結果顯示在一個格式化的方式,可以使用 pretty() 方法.

>db.mycol.find().pretty(){"_id":ObjectId(7df78ad8902c),"title":"MongoDB Overview","description":"MongoDB is no sql database","by":"tutorials point","url":"http://www.yiibai.com","tags":["mongodb","database","NoSQL"],"likes":"100"}>

除了find() 方法外,還有一個 findOne() 法,返回一個檔案。

要查詢檔案的一些條件的基礎上,可以使用下面的操作

操作 語法 例子 RDBMS 等同
Equality {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point'
Less Than {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50
Less Than Equals {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50
Greater Than {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50
Greater Than Equals {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50
Not Equals {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50