最近在學習 非關係型的數據庫,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 }