1. 程式人生 > 實用技巧 >mongodb入門

mongodb入門

集合

  • 相當於傳統資料庫中的表
集合的顯示建立

直接建立一個集合

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條