mongodb基本介紹
mongodb是一種分佈式、非關係型的數據庫,它區別於SQLserver ,Mysql,Oricle等常規的關係型數據庫。它也被稱爲文檔型的數據庫,這是因爲mongodb在使用過程中脫離了傳統的二維表格形式,使得它在存儲數據時更加靈活。在利用mongodb存儲數據時給人的感覺更像是在寫json文件。
mongoDB的適用場景:
1. 適合作爲信息基礎設施的持久化緩存層
2. 適合實時的插入、更新與查詢,並具備應用程序實時數據存儲所需的複製及高度伸縮性
3. 適合文檔化格式的存儲及查詢
4. 適合由數十或數百臺服務器組成的數據庫
mongoDB不適用場景:
1. 要求高度事務性的系統。例如對於銀行或會計等需要大量原子性複雜事物的應用程序來說,還是需要關係型數據庫的。
2. 傳統的商業智能應用
3. 複雜的表級聯查詢
mongodb基本語法
打開命令行控制檯,輸入命令mongo,如果您還沒有安裝mongodb請查看上篇安裝介紹的文章。 在輸入mongo命令後我們就會進入到mongodb的命令環境。如果您的系統提示,mongo不是內部或外部命令,那你需要首先配置一下path環境。
找到mongodb安裝所在目錄,並找到bin目錄所在地址,複製地址(默認C:\Program Files\MongoDB\Server\3.2\bin),右鍵 計算機->屬性 -> 高級系統設置 -> 環境變量 ->path 編輯,將地址粘貼在最後。
查看數據庫
show dbs; // 默認 顯示 test local
添加單條記錄
db.admin.insertOne({username:'jack',password:'123456'}); // 自動創建admin文檔並插入一條數據
添加多條記錄
db.admin.insertMany([{username:'alice',password:'abcd'},{username:'allen',password:'hello'}]);
不區分條數插入記錄
db.admin.insert({username:'jone',password:'somewd'});
db.admin.insert([{username:'name1',password:'pw1'},{username:'name2',password:'pw2'}]);
查詢文檔記錄
db.admin.find();
修改單條記錄
db.admin.updateOne({username:'allen'},{$set:{password:'1111!!'}});
修改多條記錄
db.admin.updateMany({},{$set:{password:'abcd!!'}}); // 不寫條件,全部修改
不區分條數修改記錄
db.admin.update({username:'jack'},{$set:{password:'hello!!'}});
刪除單條記錄
db.admin.deleteOne({password:'hello!!'});
刪除多條記錄
db.admin.deleteMany([{username:'jone'},{username:'name2'}]);
根據條件進行刪除
db.admin.remove({username:'name1'});
全部刪除
db.admin.remove({}); //不添加條件,刪除全部記錄
現在admin文檔內所有記錄都已經被刪除,我們需要重新添加一些數據,以便完成下面的學習和操作。新建josn數據如下:
[{ username:'jack',password:'pw000',age:'18'},
{ username:'jone',password:'pw111',age:'20'},
{ username:'allen',password:'pw222',age:'16'},
{ username:'salary',password:'pw333',age:'13'},
{ username:'mesa',password:'pw333',age:'24'} ]
admin文檔中插入數據
db.admin.insert(
[{ username:'jack',password:'pw000',age:'18'},
{ username:'jone',password:'pw111',age:'20'},
{ username:'allen',password:'pw222',age:'16'},
{ username:'salary',password:'pw333',age:'13'},
{ username:'mesa',password:'pw333',age:'24'}
]);
條件查詢
db.admin.find({age:'13'}); // 查詢年齡爲13的記錄
db.admin.find({age:'13'},{username:1,password:1,_id:0});// 顯示字段 0不顯示 1 顯示
指針方法
db.admin.find({}).size(); // 返回查詢結果條數
db.admin.find({}).skip(3); //跳過前3條記錄
db.admin.find({}).limit(2); //截取前兩條記錄
db.admin.find({}).skip(2).limit(2); // 返回第 3 、4 條數據
排序
db.admin.find({}).sort({age:1}); // 按年齡從小到大排序
db.admin.find({}).sort({age:-1}); //按年齡從大到小排序