Mongodb常用命令總結
- 2019 年 10 月 5 日
- 筆記
查看資料庫
show dbs;
選擇某個庫
use db;
查看庫下的表(暫且說成是表,mongodb中稱表問文檔)
show collections;
插入數據
db.table.insert( {'name':'demo','sex':'m','age':18} );
(注意在插入數據時的數據類型)
插入數據可隨意定義每行的結構,mongodb中沒有固定的表結構
eg: db.table.insert( {'names':'demo','sexs':'m','age':20} );
查詢數據
db.table.find();
(在查詢有條件的數據時,就要注意到數據類型的問題了)
eg:
db.table.insert( {'id':'123','age':18} );
db.table.insert( {'id':123 ,'age':20} );
db.table.find( {'id':123} ); # 只能查看到第二條數據
另外一些條件(如下用法):
$lt(小於),$lte(小於等於),$gt(大於),$gte(大於等於),$ne(不等於)
db.table.find( {'age':{ '$lt':19 } } )
排序
db.table.find().sort( {'age':1} )
1 表示升序 -1 表示降序
分頁
db.table.find().limit(10).skip(20);
( skip 規定忽略幾個,上述查詢類似mysql中的 limit 20,10 )
查詢統計
db.table.count();
db.table.find( {'age':{'$lt':19} } ).count()
刪除數據
db.table.remove();//刪除全部
db.table.remove( {'id':123} );//刪除指定數據
更新數據
db.table.update( {'id':123},{'age':25} )
// 查找id為123的數據,將其age欄位更新為25
do.table.update( {'id':123} , {'age':22} ,true );
// 類似於mysql的 replace用法 存在則更新,不存在則添加
索引
db.table.ensureIndex({'id':1})// 創建索引
db.table.dropIndex({'id':1})// 刪除索引
db.table.ensureIndex({'id':1},{unique:true}); // 獨立索引
db.table.ensureIndex({'id':1,'age':1})// 聯合索引
db.table.ensureIndex( { loc : "2dsphere" } )//空間索引
備份(使用 mongodump.exe 備份數據)
mongodump.exe -d learn -o backup (備份整個 learn 資料庫)
mongodump.exe -d learn -c test -o backup (備份單獨的表)
( -d 資料庫 -c 數據表 -o 備份目錄)
恢復資料庫( 使用 mongorestore.exe 恢復)
mongorestore.exe -d lear -c test backup/learn/unicorns.bson
( -d 資料庫 -c 數據表 )
導出數據
mongoexport.exe -d test -c mapinfo -o export.dat( 導出數據為json格式數據,默認格式 )
( -d 資料庫 -c 表 -o 導出文件名)
mongoexport.exe -d test -c mapinfo –csv -f id,name -o csv.csv (導出數據為csv格式數據)
( -d 資料庫 -c 表 –csv 導出為csv格式 -f 導出欄位名 -o 導出文件名)
導入數據
mongoimport.exe -d test -c mapinfo mapinfo.dat (導入 json 格式數據 ,默認格式)
(-d 資料庫 -c 表 數據源)
mongoimport.exe -d test -c mapinfo –type csv –headerline –file csv.csv (導入csv格式數據)
( -d 資料庫 -c 表 –type 類型 –headerline 不導入第一行 –file 數據源)