添加文檔 語法: db.集合名.insert({k1:"v1", k2:"v2"....}) 註意: (1)文檔就是鍵值對,數據類型是BSON格式,支持的值更加豐富。 比如:db.集合名.insert({name:"bashlog", spc:{weight:100, address:"henan" ...
添加文檔
語法:
db.集合名.insert({k1:"v1", k2:"v2"....})
註意:
(1)文檔就是鍵值對,數據類型是BSON格式,支持的值更加豐富。
比如:db.集合名.insert({name:"bashlog", spc:{weight:100, address:"henan"}})
(2)在添加的文檔裡面,都有一個'_id'的鍵,值為對象類型。
ObjectId類型:
每個文檔都有一個_id欄位,並且同一集合的_id值唯一,該欄位可以是任意類型的數據,預設是一個ObjectId對象。
ObjectId對象數據組成:時間戳|機器碼|PID|計數器
_id的鍵值我們可以自己輸入,但是不能重覆
註意:在插入數據的時候,如果_id的值重覆則會報錯。
(3)可以使用js代碼來完成批量插入文檔。
刪除文檔
語法:
db.集合名.remove({條件}) # 不寫條件等於刪除所有文檔
示例1:刪除collect1集合中name等於AK3的文檔
db.collect1.remove({name:"ack3"})
示例2:刪除collect1集合中年齡大於25的文檔
使用操作符完成
常用操作符
$lt(<), $lte(<=), $gt(>), $gte(>=), $ne(<>), $in, $nin, $or, $not, $mod(取模), $exists, $where
db.collect1.remove({age:{'$gt':25}})
更新文檔
語法:
db.集合名.update({條件},{新的文檔},是否新增,是否修改多條)
db.集合名.update(條件,新文檔,是否新增,是否修改多條)
是否新增:如果值是1(true),則沒有滿足條件的就添加。
是否修改多條:若值是1(true),如果滿足條件的有多個文檔則都要修改
方法一:直接修改
示例:在collect2集合裡面,要修改age=27的文檔名稱為AK48
db.collect2.update({age:27},{name:"AK48"})
註意:以上修改方式,會丟失其它的鍵值,因此不推薦使用。
方法二:使用修改器
示例:要修改age=25的文檔名稱為"big_bash_log",並且其它鍵值不能丟失
$inc:加一個數字
set:修改某一個欄位,如果該欄位不存在就增加這個欄位
語法:
db.集合名.update({條件},{修改器的名稱:{修改的鍵:修改的新值}})
修改age=12的文檔,年齡增加10歲
db.collect2.update({age:12},{'$inc':{age:10}})
查詢文檔
語法:
db.集合名.find({條件})
示例:取出collect2集合裡面的第一個文檔
db.collect2.findOne()
示例:取出collect2集合裡面name=bash的文檔
db.collect2.find({name:"bash"})
示例:取出collect2集合中age大於11的文檔
db.collect2.find({age:{'$gt':11}})
示例:取出collect2集合裡面的文檔,只顯示name鍵
db.collect2.find({},{name:1}) # 1表示只顯示name的鍵值
name=0表示,顯示除了name以外的鍵值
示例:根據年齡的(降序|升序)來顯示文檔
db.集合名.find().sort({age:1}) # 根據年齡升序
db.集合名.find().sort({age:-1}) # 根據年齡降序
示例:顯示collect2集合中前2個文檔
db.collect2.find().limit(2)
排序並取前兩個
示例:統計collect2集合中文檔的個數
db.集合名.count() # 返回集合中有多少個文檔