MongoDB基礎(增、刪、改、查)操作,mongodb基礎

來源:互聯網
上載者:User

MongoDB基礎(增、刪、改、查)操作,mongodb基礎

一、插入

MongoDB的插入 語句是這樣的格式:

db.collection.insert(document)

其中document是文檔資料,collection是存放文檔資料的集合。如果collection存在,document會添加到collection目錄下, 如果collection不存在,資料庫會先建立collection,然後再儲存document。
例如:把name和age儲存到person集合中

db.person.insert({name:"八豆少爺",age:100})

上面是單個插入的列子,批量插入很類似,插入多個文檔時,insert命令的參數為一個數組,數組元素為BSON格式的文檔,多個文檔可以放在一個數組內,一次插入多條資料,
例如:db.users.insert([{name:”八豆”,age:1000},{name:”ID農”,age:1}])
但是使用批量插入時也有一些問題需要注意,因為BSON格式的限制,一次插入的資料量不能超過16M,在一個insert命令中插入多條資料時,MongoDB不保證完全成功或完全失敗。
想要查看已插入的person文檔,可以使用:db.person.find()查看當前庫中person集合裡的資料。
二、查詢
MongoDB中查詢檢索資料時使用find命令,使用方法如下:

文法:

db.collection.find(criteria,projection);

參數:
criteria – 查詢條件,文件類型,可選。
projection– 返回的欄位,文件類型,可選,若需返回所有欄位,則忽略此參數。
find命令兩個選擇性參數,criteria為查詢條件,projection為返回的欄位,如果不傳入條件資料庫會返回該集合的所有文檔。
例如:查詢出person集合中所有的資料。

db.person.find()

想要查看當前資料庫中的集合列表,可以使用:show collections。
三、更新
update命令可以更新指定文檔的特定欄位值,也可以替換整個文檔,如果更新操作會增加文檔大小,MongoDB將重新分配空間並重新置放。
文法:

db.collection.update(query,update,upsert:boolean,multi:boolean});

參數:
query:查詢條件,文檔,和find中的查詢條件寫法一致。
update:修改內容,文檔。
upsert(可選):如果值為true,那麼當集合中沒有匹配文檔時,建立文檔。預設false。
multi(可選):如果值為true,那麼將更新全部合格文檔,否則僅更新一個文檔,預設false。
如下樣本:將person集合中所有年齡小於30歲的資料,更新其狀態為’X’。

db.person.update({age:{$lt:30}},{$set:{status:"X"}},{multi:true})

註:小於的操作符是lt,大於的操作符是 gt

save命令可以更新或插入一個新文檔,與update命令不同的是,save只能對一個文檔進行操作。
文法:

db.collection.save();

參數:
document:新的文檔;

例如:用save命令將文檔{name:”Tony”,age:12,gender:”man”}儲存到person集合中

db.person.save({name:"Tony",age:12,gender:"man"})

四:刪除
需要刪除文檔時使用remove命令,刪除文檔可以清理掉不需要的資料,釋放儲存空間,提升檢索效率,但是錯誤的刪除會是一場災難,因此在執行資料刪除操作時需要非常的謹慎!
文法:
db.collection.remove(
query,
justOne
)
參數:
query:BSON類型,刪除文檔的條件。
justOne:布爾類型,true:只刪除一個文檔,false:預設值,刪除所有合格文檔。
下面是一個是將users集合中所有status=”X”的文檔刪除操作,對比一下MongoDB和傳統SQL資料庫刪除的操作,看看有哪些不同之處。
與傳統SQL比較 - 刪除文檔
MongoDB

db.person.remove({status:"X"})

傳統SQL

delete from person where status = 'X'

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.