mongodb入門
阿新 • • 發佈:2020-08-18
集合
- 相當於傳統資料庫中的表
集合的顯示建立
直接建立一個集合
db.createCollection(name)
- name: 要建立的資料庫名稱
集合的隱式建立
建立 文件的時候,如果沒有集合額話,就順帶著建立一個集合
集合的刪除
db.collection.drop() 或者 db.集合名稱.drop()
文件
- 相當於資料庫中的某一條資料
單個文件的插入
使用insert()
或者save()
插入
db.集合名.insert( <document or array of document> { writeConcern:<document>, ordered:<boolean> } )
- document:要寫入的文件。
- writeConcern:寫入策略,預設為 1,即要求確認寫操作,0 是不要求。
- ordered:指定是否按順序寫入,預設 true,按順序寫入。
批量文件的插入
db.集合名.insertMany(
[多個文件]
{
writeConcern:<document>,
ordered:<boolean>
}
)
- 批量插入資料可能會出現失敗的情況,導致插入終止,但是前面成功插入的資料會保留
- 使用
try catch進行異常處理
try{ db.集合名.insertMany() } catch(e){ print(e) }
查詢
查詢所有文件
db.集合名.find()
查詢符合條件的某一文件
db.集合名.find({articalId:1234})
查詢符合條件的某一文件的第一條資料
db.collection.findOne({articalID:1234})
投影查詢
- 返回部分指定的欄位,而不是符合條件的整條資料
db.集合名.find({
{articalId:1234},//查詢條件,查詢articalId為1234的資料
{artiicalId:1} //只顯示 articalId (預設情況帶有_id欄位)
})
db.集合名.find({ {articalId:1234},//查詢條件,查詢articalId為1234的資料 {artiicalId:1,_id:0} //1顯示 ,0不顯示 })
更新
文件的覆蓋更新
db.集合名.update(
{articalId:111},//查詢條件
{title:’標題‘}//插入的資料
)
- 覆蓋掉這條資料,查詢之後發現只保留了 title欄位,其他的欄位都被替換
文件的區域性更新
db.集合名.update(
{articalId:111},//查詢條件
{$set:{title:’標題‘}}//插入的資料
)
- 值更改title的內容,其餘欄位保留
文件的批量更新
- 預設情況下值修改匹配到的第一條資料
db.集合名.update(
{articalId:111},//查詢條件
{$set:{title:’標題‘}},//插入的資料
{multi:true}//設=設定multi屬性為true
)
文件的列值增長
- 對某個欄位進行自增或者自減操作
db.集合名.update(
{articalId:111},//查詢條件
{$inc:{readCount:NumberInt(1)}},//插入的資料 //numberint資料型別
)
只更新第一條記錄:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
只新增第一條:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
全部新增進去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
只更新第一條記錄:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );
刪除
文件的刪除
db.集合名.remove({articalId:123456}) //刪除articalId為123456的資料
分頁操作
統計查詢所有記錄數
db.集合名.count()
條件統計查詢記錄數
db.集合名.count({articalId:'123'})//查詢articalId為123的資料
分頁列表查詢
- 使用
limit()
方法來讀取指定數量的資料,使用skip()
跳過指定數量的資料
db.集合名.find().limit(num).skip(num)
- 返回指定的條數
db.集合名.find().limit(10)//返回10條資料 ,預設為20條
- 跳過指定數目,然後返回
db.集合名.find().skip(10)//跳過前10條資料,然後返回 預設為0條