mongoDB學習筆記--shell基本語法(二)
阿新 • • 發佈:2019-02-02
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 | (可選)指定有關記憶體大小和索引選項 |
欄位 | 型別 | 描述 |
---|---|---|
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 :3:當然也不必非要用createCollection建立,當插入一些檔案MongoDB會自動建立集合:6142800, max :10000})
>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 |