use test switched to db test 插入測試數(shù)據(jù): > db.country.insert({ name : China , province :[{ name : Henan , code : 1001 },{ name : Hebei , code : 10..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MongoDB根據(jù)內(nèi)嵌文檔的某個鍵刪除數(shù)組元素的兩種方法介紹

發(fā)布時間:2020-08-18 19:54:16 來源:ITPUB博客 閱讀:313 作者:chenfeng 欄目:關(guān)系型數(shù)據(jù)庫
> use test
switched to db test
插入測試數(shù)據(jù):
> db.country.insert({"name":"China","province":[{"name":"Henan","code":"1001"},{"name":"Hebei","code":"1002"},{"name":"Jiangsu","code":"1003"}]});
WriteResult({ "nInserted" : 1 })


方法一:
想刪除名為"Hebei"的省份信息,分兩步:
(1).查找到對應(yīng)的數(shù)組元素,并將其替換為"null"


> db.country.update({"name":"China","province.name":"Hebei"},{"$set":{"province.$":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
此時數(shù)組數(shù)據(jù)如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, "null", { "name" : "Jiangsu", "code" : "1003" } ] }


(2).然后再清空數(shù)組中的"null"
> db.country.update({"name":"China"},{"$pull":{"province":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
刪除后的最終數(shù)據(jù)如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }



方法二:
根據(jù)某個鍵直接刪除數(shù)組元素:
> db.country.update({"name":"China"},{"$pull":{"province":{"name":"Hebei"}}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.country.find()
{ "_id" : ObjectId("59f97e58a4fe2442400cbd2d"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI