數據庫的操做:mongodb
建立數據庫:數據庫
use 庫名數組
查看系統數據庫ide
show dbsspa
系統數據庫有:admin:存儲用戶信息code
local: 存儲本地數據對象
config:存儲分片信息blog
刪除數據庫: db.dropDatabase()排序
建立集合 : db.createCollection(‘collection_name’)
db.collecion_name.insert({...})索引
刪除集合 : db.collection_name.drop()
集合重命名: db.collection_name.renameCollection("new_name")
查看集合: show collections
show tables
db : mongodb的全局量,表明當前正在使用的數據庫
對集合的操做:
find(query,field)
功能 : 查找文檔
參數 : query 查找條件,至關於where子句
field 查找的域
返回值 : 查找到的全部文檔
find 的
參數解釋
query : 以鍵值對方式傳遞參數,若是是空{}表示查找所 有內容 e.g. 查找全部性別爲w的文檔 db.class0.find({sex:'w'}) field : 以鍵值對的方式給出要查找(不查找)的域 以域名爲鍵,以0,1爲值分別表示不查找和查找 * 若是某一個或多個域設置爲0 表示這些域不查找,其餘域均查找 * 若是某一個或多個域設置爲1 表示這些域查找,其餘域均不查找 * _id 除非設置爲0 不然均會查找 * 除_id域其餘域不能有的設置1有的設置0 e.g. 查找結果只有name域 db.class0.find({sex:'w'},{_id:0,name:1}) findOne(query,field) 功能 : 查找第一條符合條件的文檔 參數 : 同find 返回值: 返回查找到的文檔 e.g. 查找集合中性別爲女的第一個文檔 db.class0.findOne({sex:'w'},{_id:0,name:1}) query更多的篩選用法 操做符 : 使用$符號註明的一個特殊字符串,表達必定的 含義,好比 $lt 表示小於
query更多的篩選用法 操做符 : 使用$符號註明的一個特殊字符串,表達必定的 含義,好比 $lt 表示小於 比較操做符 $eq 等於 == e.g. 查找年齡等於18 db.class0.find({age:{$eq:18}},{_id:0}) ==》db.class0.find({age:18},{_id:0}) $lt 小於 < e.g. 查找年齡小於18的 db.class0.find({age:{$lt:18}},{_id:0}) db.class0.find({name:{$lt:"John"}},{_id:0}) * 在mongodb中字符串能夠比較大小 $lte 小於等於 <= e.g. 年齡小於等於18 db.class0.find({age:{$lte:18}},{_id:0}) $gt 大於 > e.g. 查找年齡大於16 且 小於19 db.class0.find({age:{$gt:16,$lt:19}},{_id:0}) * 在mongodb中全部的{} [] 中均可以寫多個條件。但根據參數的不一樣表達的意思不同 $gte 大於等於 >= e.g. 大於等於19 db.class0.find({age:{$gte:19}},{_id:0}) $ne 不等於 != e.g. 性別不等於‘m’的 db.class0.find({sex:{$ne:'m'}},{_id:0}) * 使用ne查找也會找到該域不存在的文檔 $in 包含 e.g. 找到年齡爲 [10,20,30] db.class0.find({age:{$in:[10,20,30]}},{_id:0}) $nin 不包含 e.g. 找到年齡不是 17 18 19 的 db.class0.find({age:{$nin:[17,18,19]}},{_id:0}) 邏輯操做符 $and 1. 在 query 若是寫多個條件默認即爲 and 關係 e.g. db.class0.find({age:{$lt:18},sex:'m'},{_id:0}) 2. 邏輯與 $and e.g. 年齡小於18而且 性別爲男 db.class0.find({$and:[{age:{$lt:18}},{sex:'m'}]},{_id:0}) $or 邏輯或 e.g. 年齡小於16或者年齡大於18 db.class0.find({$or:[{age:{$lte:16}},{age:{$gt:18}}]},{_id:0}) $not 邏輯非 e.g. 查找年齡不小於18歲的 db.class0.find({age:{$not:{$lt:18}}},{_id:0}) $nor not (a or b) ===> (not a) and (not b) e.g. 性別不是m且年齡不小於18 db.class0.find({$nor:[{sex:'m'},{age:{$lt:18}}]},{_id:0}) 邏輯條件混合 (年齡大於17 而且 爲男生) 或者 姓名叫 Abby db.class0.find({$or:[{age:{$gt:17},sex:'m'},{name:'Abby'}]},{_id:0}) (年齡不大於18 或者爲 女性) 而且 姓名 大於Lucy e.g. db.class0.find({$or:[{age:{$not:{$gt:18}}},{sex:'w'}],name:{$gt:'Lucy'}},{_id:0})
insert()
db.collection.insert() 功能 : 插入一個文檔 參數 : 要插入的文檔 插入單個文檔 e.g. db.class0.insert({'name':'Lucy',"age":18,"sex":'w'}) db.class0.insert({_id:1,name:'Jame',age:16,sex:'m'}) * 插入操做中鍵能夠不加引號 * 查看插入結果 db.class0.find() * _id 值能夠本身插入,可是不能重複 插入多條文檔 插入多條文檔時,參數用中括號裏面放入多個文檔 e.g. db.class0.insert([{name:"Alex",age:19,sex:'m'},{name:'Abby',age:18,sex:'w'}]) 其餘插入方法 insertOne() 插入一條文檔 db.class0.insertOne({name:"Levi",age:20,sex:'m'}) insertMany() 插入多條文檔 db.class0.insertMany([{name:"John",age:16,sex:'m'},{name:"Lenzer",age:17,sex:'m'}])
save()
db.collection.save() 若是正常插入與insert用法相同 e.g. db.class0.save({name:'Allen',age:19,sex:'m'}) db.class0.save([{name:"Sunny",age:17,sex:'w'},{name:'Alice',age:16,sex:'w'}]) 若是插入數據是有_id域,且_id域值存在時則會修改原有文檔,若是該值不存在則正常插入 db.class0.save({_id:2,name:'Mary',age:20,sex:'w'}) 獲取集合對象方法 db.class0 ===> db.getCollection('class0') e.g. db.getCollection("class0").find()
update()
remove()
索引操做:
對文檔中數組的操做:
數組修改器 $push 向數組中添加一項 e.g. 給小紅 score數組中添加一項91 db.class1.update({name:'小紅'},{$push:{score:91}}) $pushAll 向數組中添加多項 e.g. db.class1.update({name:'小喬'},{$pushAll:{score:[94,10]}}) $pull 從數組中刪除一項 e.g. 從數組中刪除一項 db.class1.update({name:'小紅'},{$pull:{score:78}}) $pullAll 從數組中刪除多項 e.g. db.class1.update({name:'小喬'},{$pullAll:{score:[92,10]}}) $each 對多個值逐個進行操做 e.g. 分別插入99 10 db.class1.update({name:'小喬'},{$push:{score:{$each:[99,10]}}}) $position 指定插入位置 e.g. 將67 插入到數組1號位置 db.class1.update({name:'小明'},{$push:{score:{$each:[67],$position:1}}}) $sort 數組排序 e.g. 將說有score域的數組降序排序 db.class1.update({},{$push:{score:{$each:[],$sort:-1}}},false,true) $pop 彈出一項 1表示彈出最後一項 -1彈出第一項 e.g. 刪除小明score中第一項 db.class1.update({name:'小明'},{$pop:{score:-1}}) $addToSet 向數組中添加一項 可是不能添加劇復的內容 e.g. 若是數組中沒有81 則添加81 db.class1.update({name:'小剛'},{$addToSet:{score:81}})