學習筆錄之MongoDB小記

最近在學習 非關係型的數據庫,MongoDB 。 聽到這個詞語感覺是有點陌生的吧,現在用的人也不是很多。 

之前學習過 oracle 接觸過mysql,sqlserver 數據庫。 但是都是屬於關係型的數據庫。 現在學習MongoDB,感覺稍有些吃力。 或者說是本人理解能力不太好吧。

來分享一下自己再學習過程中的東西吧,希望對想學習的朋友有幫助。

1. 基本命令
use db; 使用數據庫
show dbs;  顯示所有的數據庫
show tables; 顯示所有的表
it   繼續/下一頁

1. 添加記錄
db.table.save({name:"jc"});
db.table.save({name:"jc",age:20});

2. 刪除記錄
db.table.remove({name:"jc"});   刪除指定列的數據
db.table.remove();    刪除整個表的數據
db.table.drop();    刪除表

3. 修改記錄
db.table.update({name:"mongo"},{$set:{name:"mongo_new"}});

4. 查詢記錄
db.table.find();   查詢表的所有數據
db.table.findOne();   查詢第一條記錄
db.table.find({name:"jc"}); 帶條件查詢
db.table.find().limit(n);    查詢n條數據

5. 條件操作符(>,<,>=,<=)
db.table.find({ "field" : { $gt: value } } ); // 大於: field > value 
db.table.find({ "field" : { $lt: value } } ); // 小於: field < value 
db.table.find({ "field" : { $gte: value } } );// 大於等於: field >= value 
db.table.find({ "field" : { $lte: value } } );// 小於等於: field <= value 
如果要同時滿足多個條件,可以這樣做
db.table.find({ "field" : { $gt: value1, $lt: value2 } } );//value1 < field < value

6. 條件操作符(類似sql的in) $all 匹配所有
這個操作符跟 SQL 語法的 in 類似,但不同的是, in 只需滿足( )內的某一個值即可,  而$all 必
須滿足[ ]內的所有值,例如: 
db.users.find({age : {$all : [6, 8]}});  
可以查詢出  {name: 'David', age: 26, age: [ 6, 8, 9 ] }  
但查詢不出  {name: 'David', age: 26, age: [ 6, 7, 9 ] }

7. $exists 判斷值是否存在
db.users.find({age: {$exists: true}});   //存在 age字段的所有記錄  
db.users.find({age: {$exists: false}});  //不存在 age字段的所有記錄

8.  Null 的處理
db.c2.find({age:{"$in":[null], "$exists":true}})  //查找存在age字段,並且爲空的 數據

9. $mod 求餘運算符
db.student.find( { age: { $mod : [ 10 , 1 ] } } )  //age的值和10的餘數等於1的數據


10. $ne 不等於(!= )
db.things.find( { age : { $ne : 3 } } );  //age不等於3的所有數據


11.  $in 包含(類似於sql的 in.. 在...裏面)
db.c1.find({age:{$in: [7,8]}});

12.  $nin 不包含(類似於sql的 not in.. 不在...裏面)
db.c1.find({age:{$nin: [7,8]}});

13. skip(n).limit(m)  從第n條到第m條記錄
db.c1.find().skip(n).limit(m);

14. sort 排序
以年齡升序 asc 
db.users.find().sort({age: 1});  //按 age 升序排列
以年齡降序 desc 
db.users.find().sort({age: -1});  //按 age 降序排列

15. 遊標 (俗稱遍歷)
-- 15.1
for( var c = db.t3.find(); c.hasNext(); ) { 
...    printjson( c.next()); 
... } 
{ "_id" : ObjectId("4fb8e4838b2cb86417c9423a"), "age" : 1 } 
{ "_id" : ObjectId("4fb8e4878b2cb86417c9423b"), "age" : 2 } 
{ "_id" : ObjectId("4fb8e4898b2cb86417c9423c"), "age" : 3 } 
{ "_id" : ObjectId("4fb8e48c8b2cb86417c9423d"), "age" : 4 } 
{ "_id" : ObjectId("4fb8e48e8b2cb86417c9423e"), "age" : 5 }

-- 15.2
db.t3.find().forEach( function(u) { printjson(u); } ); 
{ "_id" : ObjectId("4fb8e4838b2cb86417c9423a"), "age" : 1 } 
{ "_id" : ObjectId("4fb8e4878b2cb86417c9423b"), "age" : 2 } 
{ "_id" : ObjectId("4fb8e4898b2cb86417c9423c"), "age" : 3 } 
{ "_id" : ObjectId("4fb8e48c8b2cb86417c9423d"), "age" : 4 }









發佈了21 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章