­

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 數據源)