MongoDB根據內嵌文件的某個鍵刪除陣列元素的兩種方法介紹
> use test
switched to db test
插入測試資料:
> db.country.insert({"name":"China","province":[{"name":"Henan","code":"1001"},{"name":"Hebei","code":"1002"},{"name":"Jiangsu","code":"1003"}]});
WriteResult({ "nInserted" : 1 })
方法一:
想刪除名為"Hebei"的省份資訊,分兩步:
(1).查詢到對應的陣列元素,並將其替換為"null"
> db.country.update({"name":"China","province.name":"Hebei"},{"$set":{"province.$":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
此時陣列資料如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, "null", { "name" : "Jiangsu", "code" : "1003" } ] }
(2).然後再清空陣列中的"null"
> db.country.update({"name":"China"},{"$pull":{"province":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
刪除後的最終資料如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }
>
方法二:
根據某個鍵直接刪除陣列元素:
> 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" } ] }
>
switched to db test
插入測試資料:
> db.country.insert({"name":"China","province":[{"name":"Henan","code":"1001"},{"name":"Hebei","code":"1002"},{"name":"Jiangsu","code":"1003"}]});
WriteResult({ "nInserted" : 1 })
方法一:
想刪除名為"Hebei"的省份資訊,分兩步:
(1).查詢到對應的陣列元素,並將其替換為"null"
> db.country.update({"name":"China","province.name":"Hebei"},{"$set":{"province.$":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
此時陣列資料如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, "null", { "name" : "Jiangsu", "code" : "1003" } ] }
(2).然後再清空陣列中的"null"
> db.country.update({"name":"China"},{"$pull":{"province":"null"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
刪除後的最終資料如下:
> db.country.find()
{ "_id" : ObjectId("59f97d03a4fe2442400cbd2c"), "name" : "China", "province" : [ { "name" : "Henan", "code" : "1001" }, { "name" : "Jiangsu", "code" : "1003" } ] }
>
方法二:
根據某個鍵直接刪除陣列元素:
> 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" } ] }
>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2146696/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 根據陣列的值刪除元素陣列
- PHP 如何根據鍵值刪除一個陣列中的元素PHP陣列
- JS刪除陣列裡的某個元素方法JS陣列
- MongoDB查詢(陣列、內嵌文件和$where)MongoDB陣列
- PHP從陣列中刪除元素的方法PHP陣列
- Mongodb內嵌陣列的完全匹配查詢MongoDB陣列
- js陣列操作——物件陣列根據某個相同的欄位分組JS陣列物件
- 簡單介紹Golang切片刪除指定元素的三種方法Golang
- 二維陣列根據某個欄位排序陣列排序
- PHP二維陣列根據某個欄位排序PHP陣列排序
- js如何合併兩個陣列並且刪除重複的元素JS陣列
- JavaScript刪除陣列第一個元素JavaScript陣列
- Larvel 操作 MongoDB(對內嵌陣列增刪改)MongoDB陣列
- JavaScript刪除陣列元素JavaScript陣列
- R語言中根據列名刪除指定的列R語言
- 二維陣列按照其內層陣列的某個鍵值排序陣列排序
- Array · 刪除陣列中指定的元素陣列
- PHP 刪除陣列中元素的方式PHP陣列
- js刪除陣列指定索引的元素JS陣列索引
- javascript刪除陣列元素的程式碼JavaScript陣列
- MongoDB查詢內嵌文件MongoDB
- 陣列的方法-新增刪除陣列
- JavaScript刪除陣列最後一個元素JavaScript陣列
- JavaScript 刪除陣列最後一個元素JavaScript陣列
- php 陣列根據元素從小到大排序PHP陣列排序
- JavaScript 刪除陣列指定元素JavaScript陣列
- JavaScript刪除array陣列元素JavaScript陣列
- 刪除陣列中一個或者多個連續的元素陣列
- 二維陣列根據鍵的值進行排序陣列排序
- JS陣列at函式(獲取最後一個元素的方法)介紹JS陣列函式
- js刪除陣列中重複的元素JS陣列
- js刪除陣列中的重複元素JS陣列
- js刪除陣列元素中的指定值JS陣列
- JS] JS 之刪除陣列中的元素JS陣列
- 刪除陣列中的元素(連結串列)陣列
- mongodb_資料型別(null/字串/數字/日期/內嵌文件/陣列等)MongoDB資料型別Null字串陣列
- js物件陣列(JSON) 根據某個共同欄位 分組物件陣列JSON
- MongoDB 刪除文件MongoDB