當前位置:首頁 » 網路管理 » mongodb如何匹配刪除集合元素
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mongodb如何匹配刪除集合元素

發布時間: 2023-05-01 06:16:25

1. mongodb如何新增和刪除子多級文檔

創建文檔
向MongoDB插入數據,使用insert,
如:db.refactor.insert({"refactor's blog":"http://www.cnblogs.com/refactor"})
這個操作會給 文檔 增加 一個"_id",鍵,並保存在資料庫中。
批量插入
如果要插入多個文檔,使用批量插入會快一些,批量化插入能傳入一個有文檔構成的數據給資料庫
一次批量插入只是單個的TCP請求,避免了許多零碎的請求帶來的開銷.由於無需處理大量的消息頭,
這樣能減少插入時間.每當單個文檔發送致資料庫時,會有一個頭部信息,告訴資料庫對指定的集合做
插入操作.用批量插入的話,資料庫就不用重復的處理每個文檔的這種頭部信息了.
當前版本MongoDB消息的最大長度是16M,使用批量插入是有這個限制的.
插入的原理和作用
當執行插入的時候,使用的驅動程序會將數據轉換成BSON的形式,然後將其送入資料庫.資料庫解析
BSON,檢驗是否包含"_id"鍵並且不超過16M,除此之外,不做別的驗證,就只是簡單的將文檔原樣的
存入資料庫.這樣做的壞處是允許插入無效的數據,好處是能讓資料庫更加安全,遠離注入式攻擊.
所有的主流語言的驅動會在傳送數據之前進行一些數據的有效性檢查(文檔是否超長,是否含非utf-8的字元,
是否使用了未知類型).同樣也可以啟動資料庫伺服器的時候使用--objcheck選項,這樣伺服器就會在插入
之前先檢驗文檔結構的有效性,當然這樣要犧牲性能.
查看doc文檔轉化為BSON的大小(以位元組為單位),在shell中使用Object.bsonsize(doc)

刪除文檔
db.users.remove()
會刪除users集合的所有文檔,但不會刪除集合本身,原有的索引也會保留.
remove函數可以接受一個查詢文檔作為可選參數,給定這個參數,只有符合條件的文檔才會被刪除.
db.users.remove({"name":"Refactor"})
刪除數據的永久性的,不能撤銷和恢復.
如果要清除整個集合,直接刪除集合(然後重建索引)比刪除集合中所有的文檔要快.
刪除集合:db.drop_collection("users")

2. 如何刪除MongoDB資料庫中的文件

一、Insert操作

Insert操作是MongoDB插入數據的基本方法,對目標集合使用Insert操作,會將該文檔添加到MongoDB並自動生成相應的ID鍵。文檔結構採用類似JSON的BSON格式。常見的插入操作主要有單條插入和批量插入兩種形式。插入時只是簡單地將文檔存入資料庫中,不進行額外的驗證,也不會執行代碼,所以不存在注入式攻擊的可能。

1、單條插入

四、瞬間完成

上面的插入,刪除和更新操作都是瞬間完成的,不需要等待資料庫響應。這樣的實現可以獲取高性能,速度非常快,只會受客戶端發送速度和網路速度的制約。但由於不會獲取伺服器狀態,所以不能保證操作順利完成。這對於付費系統,安全性較高的系統是不可行的,此時對這些操作需要使用的安全版本。安全版本會在操作執行後立即運行getLastError命令,來檢查是否執行成功。如果失敗一般會拋出可捕獲的異常,然後可以在代碼中處理。

3. 怎麼刪除mongodb指定資料庫的集合

1. 刪除」ban_friends_id」:」BAN121113″數據
> db.test_ttlsa_com.remove({"ban_friends_id":"BAN121113"})
2. 刪除所有數據
> db.test_ttlsa_com.count()
2
> db.test_ttlsa_com.remove({})
> db.test_ttlsa_com.count()
0
3. 刪除集合
> show collections
system.indexes
test_ttlsa_com
> db.test_ttlsa_com.drop()
true
> show collections
system.indexes
4. 刪除整個資料庫
> show dbs
local 0.078125GB
ttlsa_com 0.203125GB
> db
ttlsa_com
> db.ttlsa_com.getDB()
ttlsa_com
> show collections
system.indexes
> db.dropDatabase()
{ "dropped" : "ttlsa_com", "ok" : 1 }
> db
ttlsa_com
> show dbs
local 0.078125GB
在執行刪除整個資料庫前,要謹慎,執行db命令查看當前的使用的資料庫,可確保誤刪除,造成數據的丟失,是個不錯的習慣啦。

4. mongodb如何刪除集合中的指定鍵值對

其實沒必要刪除,冗餘的欄位對於MongoDB的性能沒有任何影響。
如果非要刪除某個欄位,先將這個數據整個讀出來,然後修改好在更新進去。

以java的驅動為例:

DBObject dbo = db.getCollection("test").findOne(query);//query為查詢條件,查詢出待修改的數據
dbo.removeField("filed1"); //把待刪除的欄位刪除掉,如field1這個鍵值對
b.getCollection("test").update(query, dbo); //更新

5. mongodb如何刪除集合中的指定鍵值對

mongodb刪除集合中指定的鍵值對用drop方法:
drop() 方法
MongoDB 的 db.collection.drop() 是用來從資料庫中刪除一個集合。
語法:
drop() 命令的基本語法如下
db.COLLECTION_NAME.drop()

示例:
首先,檢查可用的集合在資料庫 mydb
>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
yii
>

現在刪除集合名稱為 mycollection
>db.mycollection.drop()
true
>

再次檢查到資料庫中的集合列表
>show collections
mycol
system.indexes
yii
>

drop() 方法將返回 true,如果選擇成功收集被丟棄,否則將返回 false