use dbname :切換和創(chuàng)建數(shù)據(jù)庫
show dbs :查看所有數(shù)據(jù)庫
db.stats():查看當前數(shù)據(jù)庫信息
db.createCollection("stu"):創(chuàng)建集合(不固定大小),先切數(shù)據(jù)庫
db.createCollection("stu",{capped:True,size:10,max:100}):創(chuàng)建固定大小的集合,
db.dropDatabase():刪除數(shù)據(jù)庫,刪哪個先切換到哪個數(shù)據(jù)庫下
show collections:查看當前數(shù)據(jù)庫所有集合
db.集合名稱.drop():刪除集合
創(chuàng)建固定大小的集合db.createCollection("集合名稱")
固定大小的集合(當集合存滿時,新的數(shù)據(jù)會覆蓋之前的數(shù)據(jù))
db.createCollection("集合名稱,
{capped:True,
size:10,指集合大?。▎挝皇亲止?jié)),
max:100指定集合在存儲的最大文檔數(shù)
}
)
size的優(yōu)先級更高
插入數(shù)據(jù):
插入單條數(shù)據(jù)
db.student.insert({name:'王霞',age:18,gender:1,})
插入多條數(shù)據(jù)
db.student.insert([{name:'xiaoli',age:19,gender:0},{name:'xiaoqi',age:18,gender:1}])
查看集合中的數(shù)據(jù)
db.student.find()
插入數(shù)據(jù)是如果沒有指定id,會自動生成一個,也可以自己指定。ID是一個主鍵也是一個索引
更新數(shù)據(jù):
更新前:
{ "_id" : ObjectId("5c2476f6173b783193b0b16c"), "name" : "xiaoqi", "age" : 18, "gender" : 1 }
db.student.update({name:'xiaoqi'},{name:'xiaodong'},{upsert :可選,這個參數(shù)的意思是,如果不存在update 的記錄,是否插入objNew,true為插入,默認是false,
multi:可選,mongodb 默認是false,
只更新找到的第 一條記錄,如果這個參數(shù)為true,就把按條件查出來多條記錄 全部更新。
})全文檔更新,ID不變;
更新后:
{ "_id" : ObjectId("5c2476f6173b783193b0b16c"), "name" : "xiaodong" }
更新前:
{ "_id" : ObjectId("5c2476f6173b783193b0b16b"), "name" : "xiaoli", "age" : 19, "gender" : 0 }
db.student.update({name:'xiaoli'},{$set:{age:3}})局部更新
更新后:
{ "_id" : ObjectId("5c2476f6173b783193b0b16b"), "name" : "xiaoli", "age" : 3, "gender" : 0 }
save:會根據(jù)_id這個字段取集合下查找,如果_id存在,則進行全文檔更新,如果不_id存在, 則插入一條新數(shù)據(jù)
db.集合名稱.save(
{id:'','key':'value',....}
)
刪除
db.集合名稱.remove({key:'value'},{justOne:true})
db.集合名稱.drop
db.dropDatabase()
查詢
db.集合名稱.find()查詢所有
db.集合名稱.find({'key':'value'})
db.集合名稱.findOne({'key':'value'})查詢一條
sudo service mongodb start
lte 小于等于
gte大于等于
多條件查詢
查詢時間大于100并且演員是李連杰
db.集合名稱.find(
{
'times':{$gt:100},
'actors':'李連杰',
}
)
查詢時間大于100或者演員是李連杰
db.集合名稱.find(
{
gt:100}},{actor:'李連杰'}]
})
查詢時間大于100或者演員是李連杰,并且標題為少年方世玉的文檔
db.集合名稱.find(
{
gt:100}},{actor:'李連杰'}],
title:'少年方世玉'
})
范圍運算符
db.movie.find({actors:/^李/}) db.movie.find({actors:{$regex:'李'}}) 查詢以李開頭的演員
$type:只返回符合數(shù)據(jù)類型的文檔
db.集合名稱.find({
'key':{$type:'數(shù)據(jù)類型'}
})
limit:限制返回
db.集合名稱.find().limit(3) 查詢前3條
db.集合名稱.find().skip(2).limit(3) 跳過前2條,查詢3條
sort:排序 1:升序 -1:降序
db.集合名稱.find().sort({'times':-1}) 以時間降序查詢
db.集合名稱.find().sort({'times':1}) 以時間升序查詢
去重
db.集合名稱.distinct(
'actors',{times:{$gte:90}}
)
project:投影 1顯示 0不顯示 查詢想要的字段
db.集合名稱.find({},{'title':1})
count:統(tǒng)計
db.movie.count() 查詢集合中有幾條文檔
db.集合名稱.find().count()
db.movie.count({actors:'李連杰'})
db.集合名稱.find({actors:'李連杰'}).count()