MongoDB的基礎語句
1.啟動mongodb服務,並設定資料存放位置
1.切換到對應為mongodb的bin目錄位置(我的是在E盤)
1.切換碟符 e:
2.cd E:\mongodbinstall\bin 切換到bin目錄
2.啟動並設定mongodb資料的存放位置
1.格式: mongod--dbpath=資料存放位置
2.mongod.exe --dbpath=E:\mongodbinstall\data
2.客戶端連線mongodb服務
1. 重新啟動一個cmd
2.mongo
庫--集合--文件
3.庫的操作
1.檢視當前所有的庫databases
show databases
或者 show dbs
2.建立/使用 資料庫
格式: use 資料庫名
use student
如果對應的資料庫存在,表示使用該資料庫
如果對應的資料庫不存在,表示建立該資料庫
如果是剛建立的資料庫,而又沒有資料,則該資料庫不顯示
插入一個文件: db.student.insert({name:"小華華"})
db 代表的是當前的資料庫
3.刪除一個數據庫
use 資料庫名
db.dropDatabase()
4.檢視當前使用的資料庫
db
或者 db.getName()
5.help
檢視幫助命令
6.exit
退出
4.集合的操作
1.檢視當前資料庫中的集合
show collections
2.建立一個集合
1.第一種
db.集合名.insert(資料)
2.第二種
db.createCollection(集合名)
#第一種建立的是攜帶資料的集合
#第二種是建立一個空的集合
3.刪除一個集合
格式: db.集合名.drop()
例: db.sudents.drop() 刪除成功返回True
5.文件的操作
1.新增一個文件
1.新增一個文件
格式: db.集合名.insert(資料) 資料是Bjson格式
例: db.student.insert({name:"小花花",age:18,address:"深圳",gender:1})
2.新增多個文件
格式: db.集合名.insert([文件1,文件2,文件3,...])
db.student.insert([{name:"春華秋實",age:20,address:"北京",gender:0},{name:"滑不溜秋",age:22,address:"杭州",gender:0},{name:"風花雪月",age:18,address:"上海",gender:1}])
3.可以是save 也是新增
db.student.save({"_id":ObjectId("5a694d08cbf8026d024fe36c"),name:"大花花",age:28,address:"深圳",gender:0})
db.student.insert({"_id" : ObjectId("5a694f8ccbf8026d024fe376"),name:"大花花",age:28,address:"深圳",gender:0})
sava新增資料與insert是類似的,但是當插入的資料中指定了_id時,save表示的是修改資料, insert不能修改資料
2.查詢文件
1.檢視所有資料
格式: db.集合名.find()
例: db.student.find()
select 欄位名 from 表名 where 條件
2.查詢資料的格式
格式: db.集合名.find(
query,{
屬性名1:1,
屬性名2:1
...
}
)
query 表示的是查詢條件, 可以省略, 不寫表示查詢所有
屬性名1:1, 表示需要顯示的屬性名, 1表示顯示, 如果沒有寫的表示不顯示,
如果第二個引數不寫,表示顯示所有的屬性名
例:查出名字是"大花花的資料"
db.student.find({name:"大花花"})
db.student.find({name:"大花花"},{name:1,age:1})
db.student.find(null,{name:1,age:1})
3.格式化資料
db.集合名.find().pretty()
4.查詢結果的一條資料
db.集合名.findOne()
3.修改文件
1.第一種修改
save
2.**update 表名 set 列名 = 新的值 where 條件
格式: db.集合名.update(query,
upset,
{
upsert:boolean,
multi:boolean
})
query 表示匹配條件
注意: 以下寫法,會將整個資料修改成 age:58
#db.student.update({name:"春華秋實"},{age:58})
upset: 修改值, $set 表示修改原屬性的值 , $inc表示在原有屬性值上加上一個值
upsert:boolean, 表示當需要修改的資料不存在時,是否當新的資料插入到集合中
true表示當新的資料插入, false是預設值,不會當新的資料插入
multi: boolean 表示是否修改所有符合條件的資料, true 修改所有, 預設false,預設只會修改第一個匹配的
如: db.student.update({name:"小花花"},{$set:{age:58}})
db.student.update({name:"小花花"},{$inc:{age:1}})
db.student.update({name:"小華華"},{$set:{age:58,name:"大華華"}})
db.student.update({name:"小華華"},{$set:{age:58,name:"大華華"}},{upsert:true})
db.student.insert([{name:"春華秋實",age:20,address:"北京",gender:0},{name:"滑不溜秋",age:20,address:"杭州",gender:0},{name:"風花雪月",age:20,address:"上海",gender:1}])
db.student.update({age:20},{$set:{gender:0}},{multi:true})
4.刪除文件 --*delete from 表名 where 條件*
格式:db.集合名.remove(query,
{justOne:boolean})
query 表示匹配條件
justOne 表示是否只刪除匹配項的一條資料, True表示只刪除匹配的第一條資料
, 預設是false,預設會刪除所有的匹配項
db.student.remove({age:20})
db.student.remove({age:20},{justOne:true})
6.查詢條件
1.比較運算子
1.大於----- $gt
例: db.student.find({age:{$gt:22}})
2.大於等於 ---- $gte
例: db.student.find({age:{$gte:22}})
3.小於 ----- $lt
4.小於等於 ----- $lte
5.等於----- :
6.大於22且小於30
7. 根據id進行查詢 :
例: db.student.find({"_id" : ObjectId("5a697b2751261501dda42204")})
8.獲取結果的數量
例: db.student.find().count()
9.查詢某個屬性值中是否包含某個字元
<!-- 找出所有包含 "花" 字的 -->
db.student.find({name:/花/}) 注意: 沒有引號
10. 匹配某個屬性值是否以 某個字元開始^,結束$
db.student.find({name:/^風/})
2.邏輯運算子
1.and 邏輯與,且 ------ ,
1.找出名字是 xxx,且年齡是 yyy
db.student.find({name:"風花雪月",age:20})
2.找出年齡小於 30,且年齡 大於 20
#db.student.find({age:{$lt:30},age:{$gt:20}})
注意: db.student.find({age:{$lt:30,$gt:20}})
2.or 邏輯或, ------ $or
1.找出名字是 小花花, 或者 年齡是 20
db.student.find({$or:[{name:"小花花"},{age:20}]})
3.and和or
1.找出名字是 小花花, 或者 年齡是 20 且 性別是0的
db.student.find({$or:[{name:"小花花"},{age:20}],gender:0})
$or[ ] 或連線, , 且
7.分頁
1. limit 讀取多少條資料
db.student.find().limit(2)
2. skip 跳多少條資料
db.student.find().skip(2)
3.分頁 跳到某個位置,讀多少條資料
db.student.find().skip(2).limit(2)
8.排序
1.按年齡排序 age
1 表示從小到大
-1 表示從大到小
db.student.find().sort({age:-1})