MongoDB 基本指令(新增、修改、刪除、查詢)

在這篇文章,本魯會針對基本指令解說,新增、修改、刪除、查詢。

先給一個對應表讓大家看。


MongoDB
MS SQL
db.collection.find(條件) 
SELECT
db.collection.insert(document)
INSERT 
db.collection.update( criteria, objNew, upsert, multi )
UPDATE
db.collection.remove()
DELETE


*註:上表的collection指的就是Table Name,在MongoDB裡面稱為collection。(參考)

由上表可知,MongoDB是一種很熟悉的語言,因為使用javascript,所以撰寫上對於有接觸過javascript應該不是什麼困難的事。

在開始前,有兩個步驟:(詳細請參考 MongoDB 安裝(windows))
1.開啟MongoDB服務
2.開啟操作介面

查詢:

db.collection.find(條件) 

當條件是空值,()內不需填寫,代表查詢全部資料。(以下collection假設有個表叫Users)

db.Users.find();

查詢Users中,只顯示userid、username、age三個欄位


db.Users.find(
    { },
    { userid: 1, username: 1 ,age: 1, _id: 0 }
);

若要查詢Users中age >28


db.Users.find(    { age: { $gt: 28 } }
);

寫到這先簡單說一下,MongoDB的一些基本運算子,剛開始會很不習慣,久了就上手了。

$gt : >
$lt : <
$gte: >=
$lte: <=
$ne : !=、<>
$in : in
$nin: not in


$regex(like語法),此部份稍稍複雜,建議直接看官方說明比較清楚。(說明)

新增:


新增比較單純,但要注意一點,MongoDB每個collection裡面都會自動產生一個  _id 的欄位(field),此欄位為primary key,語法如下

db.Users.insert( {
    userid: "abc123",    age: 55,
    username: "Kevin"
 } )


更新(修改):

db.collection.update( criteria, objNew, upsert, multi )可接受四個參數,說明如下:

  • criteria : update的查詢準則,類似sql update查詢內where後面的。
  • objNew : update的物件和一些更新的操作符(如$,$inc...)等,也可以理解為sql update查詢內set後面的
  • upsert : 這個參數的意思是,如果不存在update的記錄,是否插入objNew,true為插入,默認是false,不插入。
  • multi : mongodb默認是false,只更新找到的第一條記錄,如果這個參數為true,就把按條件查出來多條記錄全部更新。

以下例,想找出age > 25 並更新 username = John

db.Users.update(
   { age: { $gt: 25 } },
   { $set: { username: "John" } },   { multi: true }
)


刪除:

db.collection.remove(),指的是針對collection(table)刪除裡面的資料,
若要刪除collection另有語法

同樣括號內,可寫入條件,若想針對此collection資料都清除,語法如下:

db.Users.remove({});

()括號內加入大括號即可。

若有條件的刪除,如下

db.Users.remove({ username : "Kevin" });



以上為MongoDB中的基本語法介紹。

參考資料:MongoDB






留言