1. 程式人生 > >MongoDB基礎的操作(1)

MongoDB基礎的操作(1)

MongoDB基礎的操作

sql與mongodb的區別

SQL術語 MongoDB 解釋
database database 資料庫
table collection 資料庫表/集合
row document 資料記錄行/文件
column field 資料欄位/域

建立資料庫

use dbname#從這裡開始下文中所有的dbname都是自己新建的資料庫的名稱

如果存在dbname,則會自動選擇dbname資料庫,如果不存在則會建立dbname資料庫。
建立完畢資料庫之後可以通過

db    #檢視當前選擇的資料庫
show dbs #檢視所有的資料庫

如果資料庫中沒有資料那麼show dbs無法顯示新建立的資料庫名稱。

刪除資料庫

db.dropDatabase()

建立集合

db.creatCollection("ccname") #ccname同dbname一樣為自己剪的集合
db.creatCollection("ccname",{capped:true,autoIndexID:true,size:10000,max:10000})
欄位 型別 描述
capped 布林 固定集合的大小,如果值為true時必須也指定size
autoindexid 布林 如果為true,自動建立_id欄位索引
size 數值 設定集合的大小
max 數值 指定固定集合中包含文件的最大數量

其實在 MongoDB 中,你不需要建立集合。當你插入一些文件時,MongoDB 會自動建立集合。

刪除集合

db.ccname.drop()

文件的增刪改查

db.ccname.insert({'name':'李華','age':18})

或者你可以定義一個變數

abc = ({'name':'李華','age':18})
db.ccname.insert(abc)

db.collection
.remove( <query>, #刪除的文件的條件。 { justOne: <boolean>, #如果設為 true 或 1,則只刪除一個文件。 writeConcern: <document> #丟擲異常的級別。 } )
db.ccname.remove({'name':'李華'})#刪除所有name=李華的文件
db.ccname.remove({'name':'李華'},{justOne:1})#刪除一條name=李華的文件

db.collection.update(
   <query>,             #相當於sql語句的where
   <update>,            #相當於sql語句的set
   {
     upsert: <boolean>, #可選,這個引數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,預設是false,不插入。
     multi: <boolean>,  #可選,mongodb 預設是false,只更新找到的第一條記錄,如果這個引數為true,就把按條件查出來多條記錄全部更新。
     writeConcern: <document> #可選,丟擲異常的級別。
   }
)

修改name=李華的文件,修改為age=20,sex=男

db.ccname.update({'name':'李華'},{$set:{'age':20,'sex':'男'})

以上方法只會修改第一條符合條件的文件,如果想修改多條可以如下

db.ccname.update({'name':'李華'},{$set:{'age':20,'sex':'男'},{multi:true})

查詢集合中所有文件

db.ccname.find()

按照條件查詢+and條件

db.ccname.find({"name":"李華","age":20}).pretty()
# 相當於select * from ccname where name="李華" and age=20;

其中pretty可以時輸出的資料更容易檢視
查詢中的or條件

db.ccname.find({$or:[{"name":"李華"},{"age":15}]})
#相當於select * from ccname where name="李華" or age=15;

and和or連用:

db.ccname.find({"name":"李華",$or:["age"=20,"age"=15]})
#相當於select * from ccname where name="李華" and (age=20 or age=15);