MongoDB的一些增刪改查命令操做:html
官方文檔參考sql
https://docs.mongodb.com/manual/reference/method/mongodb
https://docs.mongodb.com/manual/reference/operator/數據庫
#查看當前mongod下有哪些數據庫: show dbs #進入或者建立一個數據庫: use 數據庫名稱 use db_name #查看當前數據庫下,有哪些集合(表): show tables 或者 show collections #建立一個集合,(直接插入一個文檔) db.集合名稱.insert({a:1}) #更新文檔 db.集合名稱.update(query, update, option) #刪除文檔 db.集合名稱.remove(query, justone) #查詢文檔 db.集合名稱.find(query, projection) #建立索引 db.集合名稱.createIndex(keys, options) #刪除當前數據庫 db.dropDatabase() #刪除表 db.集合名稱.drop() #排序 sort #查詢時跳過和limit skip limit #經常使用聚合 count、group、aggregate、mapReduce 等等
----------------------------------------------------------數組
幾個例子:spa
增長一條文檔:幾種數據類型的展現code
db.user.insert({ "userid":1, "username":'user1', "isDel":false, "high":1.80, "age":18, "fonds":['coding', 'sleeping'], "parents":{ "father":"xx", "mother":"yy", }, "date": new Date(), "time": new Timestamp(), });
----------------------------------------------------------htm
更新: db.collection.update(query, update, option)對象
第一個參數,query表示條件;blog
第二個參數,update更新,注意$set:{}的用法,更新bson內的數組和對象用法;
第三個參數,option,upsert表示若是query條件沒有就插入一條,multi是否更新多個知足條件的記錄。
db.user.update({"userid":1}, {$set:{ "isDel": true, "parents.mother":"zz", "fonds.1":'playing', }}, {upsert: false, multi: false});
因爲mongoDB是靈活的模式,同一個集合下的各個字段可能在一個文檔裏存在,另外一條不存在。
好比要把userid=1的這條文檔的isDel域刪掉,更新語句這樣寫:
第二個參數update,利用了$unset:{}。更多去參考 https://docs.mongodb.com/manual/reference/operator/update/
db.user.update({"userid":1}, {$unset:{ "isDel": "", }}, {multi: false});
----------------------------------------------------------
刪除操做: db.collection.remove(query, justone)
db.collection.remove({"userid":{$gte:5}}, false)
該語句表示刪除userid大於等於5的文檔
query是條件,注意$gte這些操做符的寫法
justone表示是否容許刪除多條文檔
-------------------------------------------------------------
查詢操做: db.collection.find(query, projection)
用法更多參考: https://docs.mongodb.com/manual/reference/operator/query/
db.collection.find({ "userid":{ $gt : 1, $lte :5 } }, {"_id":0, "userid":1, "username":1})
該語句表示查找userid大於1小於等於5的文檔,並取出userid和username域,不要_id域(默認會取出該_id字段)
第一個參數query,表示查詢條件;
第二個參數projection,表示取出的映射字段,1爲取出來,0不展現。
----------------------------------------------------------
建立索引: db.collection.createIndex(keys, options)
查看一個集合下的索引:db.collection.getIndexes()
默認建立一個集合時,會生成 _id 的默認索引
db.collection.createIndex({userid:1, cdate:-1}})
建立一個複合索引,userid正序,cdate倒序的索引。
----------------------------------------------------------
其餘經常使用操做, sort、limit、skip、count、group、aggregate、mapReduce。
在官方操做手冊上查看.
再附上一個網友總結的經常使用CURD操做上,mongoDB和sql的對比: