1. 程式人生 > 其它 >2.Mongodb常用的命令

2.Mongodb常用的命令

show dbs : 顯示當前資料庫列表
show collections   : 顯示當前資料庫中的集合
show users  :顯示使用者

use  db_name : 切換資料庫,和mysql中的切換資料庫是一樣
db.help() :裡面有很多命令,可以好好研究研究

資料庫相關
1.help
    db.help()
    db.集合名.help()
    db.集合名.find().help();
    rs.help();
2.切換資料庫
    use  db_name 
建立資料庫有兩種方法:
3.查詢所有資料庫 show dbs; 4.刪除當前使用資料庫 db.dropDatabase();
5.檢視當前使用的資料庫 db.getName(); 6.顯示當前db狀態 db.stats(); 7.顯示當前db版本 db.version() 8.檢視當前db的連線機器地址 db.getMongo(); collectoin(集合相關) 1.得到指定名稱的聚集集合 db.getCollection("collecton_name") 2.得到當前db的所有聚集集合 db.getCollectionNames(); 3. 顯示當前db所有聚集索引的狀態 db.printCollectionStats(); 使用者相關 1
.新增一個使用者 db.addUser("name"); db.addUser("Username","pwd123",true); 新增使用者、設定密碼、是否只讀 2.資料庫認證、安全模式 db.auth("username","123123") 3.顯示當前所有使用者 db.users; 4.刪除使用者 db.removeUser("username"); 檢視聚集集合基本資訊 1.檢視當前集合的資料條數 db.集合名.count() 2.檢視資料空間大小 db.集合名.dataSize(); 3.檢視當前聚集集合的狀態 db.集合名.stats();
4.檢視當前聚集集合所在的db db.集合名.getDB(); 5.檢視聚集集合儲存總大小 db.集合名.totalSize(); 6.檢視聚集集合儲存空間大小 db.userinfo.storageSize(); 7.shard版本資訊 db.userinfo.getShardVersion() 8.刪除當前聚集集合 db.userinfo.drop();
聚集集合查詢
1.查詢所有記錄
   db.集合名.find();  相當於select * from 集合名;
   預設每頁顯示20條記錄,當顯示不下的情況時,可以用it迭代命令查詢下一頁資料。

2.查詢去掉後的當前聚集中的某列的重複資料
   db.集合名.distinct("name"); 相當於select distinct name from userinfo;

3.查詢age=22的記錄
   db.userinfo.find({"age":22});  相當於:select * from 集合名 where age=22;

4.查詢age>22的記錄
    db.userinfo.find({age:{$gt:22}}); 相當於select * from userinfo where age>22;
5.查詢age<22的記錄
    db.userinfo.find({age:{$lt:22}}); 相當於select * from userinfo where age<22;
6.查詢age>=25的記錄
    db.userinfo.find({age:{$gte:25}}) 相當於select * from userinfo where age>=25;
7. 查詢age<=25的記錄
    db.userinfo.find({"age":{$lte:25}});
8.查詢age>=23並且age<=26
    db.userinfo.find({age:{$gte:23,$ite:26}});

9.查詢name中包含mongo的資料
  db.userinfo.find({name:/mongo/});
  //相當於%% select * from userinfo where name like %mongo%;

10.查詢name以mongo開頭的
   db.userinfo.find({name:/^mongo/}); select * from userinfo where name like 'mongo%';
11.查詢指定列name,age資料
   db.userinfo.find({},{name:1,age:1});
   相當於:select name,age from userinfo;
   這裡也可以用用true或false,當用ture的情況下和name:1效果一樣,如果用false就是排除name,顯示name以外的列資訊。

12.查詢指定列name、age資料,age>25
    db.userinfo.find({age:{$gt:25}},{name:1,age:1})
    相當於:select name,age from userinfo where age>25;
13.按照年齡排序
     升序:db.userinfo.find().sort({age:1});
     降序:db.userinfo.find().sort({age:-1});

14.查詢name=’zhangshan',age=22的資料
     db.userinfo.find({name:'zhangshan',age:22});
     相當於:select * from userinfo wehre name='zhangshan' and age='22';
15.檢視前5條資料
     db.userinfo.find().limit(5);
     相當於:select top 5 * from userinfo;
16.檢視10條以後的資料
    db.userinfo.find().skip(10);

17.檢視在5-10之間的資料
     db.userinfo.find().limit(10).skip(5);  可用於分頁,limit 是pagesize,skip是第幾頁
18 or與查詢
     db.userinfo.findOne();
     相當於:db.userinfo.find().limit(1);
19.查詢某個結果集哦記錄條數
     db.userinfo.find({age:{$gte:25}}).count();
     相當於:select count(*) from userinfo where age>=20;
     如果要返回限制之後的記錄數量,要使用count(true)或者count(非00
    db.users.find().skip(10).limit(5).count(true);

21.建立索引
   db.userinfo.ensureIndex({name:1});
   db.userinfo.ensureIndex({name:1,ts:-1})
索引篇
1.查詢當前聚集集合所有索引
   db.userinfo.getIndexes();
2.檢視總索引記錄大小
   db.userinfo.totallindexSize(0;
3.讀取當前集合的所有index資訊
    db.users.relndex();
4.刪除指定索引
    db.users.dropindex("name_1");
6.刪除所有索引
   db.users.dropindexes();
1.新增
db.users.save({name:'zhangshan',age:25,sex:true})

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

db.user.update({age:25},{$set:{name:'changename'}},false,true);
相當於:update users set name='changName' where age=25;

db.users.update({name:'list},{$inc:{age:50}},false,true);
相當於:update users set age=age + 50 where name='list';

db.users.update({name:'list'},{$inc:{age:50},$set:{name:'hoho'}},false,true);
相當於:update users set age=age+50,name='hoho' where name='list';

3.刪除
db.users.remove({age:132});

4.查詢修改刪除
db.users.findAndModify({
     query:{age:{$gte:25}},
     sort:{age:-1},
     update:{$set:{name:'a2'},$inc:{age:2}},
     remove : true

});
連線:mongo --username root  --password 123456 --host 10.10.10.10 --port 27017 --authenticationDatabase admin <<EOF