亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

MongoDB文檔更新(一)

發布時間:2020-06-18 03:50:19 來源:網絡 閱讀:601 作者:unicorn1842 欄目:MongoDB數據庫

    MongoDB文檔更新:1.可以是采用刪除原文檔然后插入一個更新后的新文檔到數據庫中;2.基于原文檔使用修改器修改原文檔中的文檔屬性。

    下面主要說明的是使用基于原文檔使用update方法結合修改器修改文檔內容:
    修改的數據結構包括文檔中的簡單屬性、數組和嵌套文檔。
    1.$set修改器:用來指定文檔中某一個鍵的值,如果此鍵不存在的話就創建。
    如要修改如下文檔:
        > db.c1.find({"name":"user3"});
        { "_id" : ObjectId("4fc145e3703fa637a073651b"), "name" : "user3", "age" : 16 }

    將其中的"name"修改成"user16":
       > db.c1.update({"age":16},{"$set":{"name":"user16"}});
       > db.c1.find({"age":16});
        { "_id" : ObjectId("4fc145e3703fa637a073651b"), "age" : 16, "name" : "user16" }
    往用戶為user16的文檔中添加一本書:
       > db.c1.update({"age":16},{"$set":{"book":"love story"}});
       > db.c1.find({"age":16});
{ "_id" : ObjectId("4fc145e3703fa637a073651b"), "age" : 16, "book" : "love story", "name" : "user16" }
       增加了“book”屬性,并添加了一本書。
    2.$unset修改器:與$set相對應,可以去掉某一個屬性值。
      如要刪上面文檔中的"book"屬性,可使用:
      db.c1.update({"age":16},{"$unset":{"book":1}});
      結果是:
      > db.c1.find({"age":16});
{ "_id" : ObjectId("4fc145e3703fa637a073651b"), "age" : 16, "name" : "user16" }其中的"book"屬性被刪除掉,"1"刪除掉book屬性。
    3.使用$set,$unset修改嵌套文檔:
    如下嵌套文檔:
    { "_id" : ObjectId("4fc145e3703fa637a073651b"),
      "address" : { "location" : "linkin street no5", "zip" : "108991" },
      "age" : 16,
      "name" : "user16" }
    修改其中的zip屬性為"111111":
    > db.c1.update({"age":16},{"$set":{"address.zip":"111111"}});
    > db.c1.find({"age":16});
    { "_id" : ObjectId("4fc145e3703fa637a073651b"),
      "address" : { "location" : "linkin street no5", "zip" : "111111" },
      "age" : 16,
      "name" : "user16" }
    注意,在修改文檔的時候不要忘記使用"$set"修改器,否則的話原來的文檔會被
{"address.zip":"111111"}替代。
     4.數組修改器:對數組的修改,一般包括:添加元素值,刪除元素值。
     1).首先往一個文檔里面添加一個數組,比如在這里往:
     db.c1.find({"age":16});
    { "_id" : ObjectId("4fc145e3703fa637a073651b"),
      "address" : { "location" : "linkin street no5", "zip" : "111111" },
      "age" : 16,
      "name" : "user16" }
     添加一個"luckyNumber":[1,8,0]的鍵值對。可以使用前面的$set完成此操作。
     > db.c1.update({"age":16},{"$set":{"luckyNumber":[1,8,0]}});
     >db.c1.find({"age":16});
   { "_id" : ObjectId("4fc145e3703fa637a073651b"),
     "address" : { "location" : "linkin street no5", "zip" : "111111" },
     "age" : 16,
     "luckyNumber" : [ 1, 8, 0 ], "name" : "user16" }
     2).$push修改器:往"lucyNumber"中壓入一個數字,使用此修改器是往數組末尾追加一個數字。
     如:db.c1.update({"age":16},{"$push":{"luckyNumber":9}});
     > db.c1.find({"age":16});
{ "_id" : ObjectId("4fc145e3703fa637a073651b"), "address" : { "location" : "linkin street no5", "zip" : "111111" }, "age" : 16, "luckyNumber" : [ 1, 8, 0, 9 ], "name" : "user16" }
     其中luckyNumber多了一個數字9.
     如果繼續使用db.c1.update({"age":16},{"$push":{"luckyNumber":9}});會在再多出一個9.(此處省略)。
     3).$addToSet修改器:把數組當成一個類似于set集合,其中不能存放相同的值。
     如在2)的文檔中使用:db.c1.update({"age":16},{"$addToSet":{"luckyNumber":9}});
     結果會是:
      db.c1.find({"age":16});
{ "_id" : ObjectId("4fc145e3703fa637a073651b"), "address" : { "location" : "linkin street no5", "zip" : "111111" }, "age" : 16, "luckyNumber" : [ 1, 8, 0, 9 ], "name" : "user16" }
      其中luckyNumber還是只有一個9.

     4).$pop數組數據彈出:{"$pop":{key:1}}彈出數組尾部數據,{"$pop":{key:-1}}彈出數組首部數據,
     如要彈出luckyNumber的末尾數"9":
     > db.c1.update({"age":16},{"$pop":{"luckyNumber":1}});
     > db.c1.find({"age":16});
   { "_id" : ObjectId("4fc145e3703fa637a073651b"),
     "address" : { "location" : "linkin street no5", "zip" : "111111" },
     "age" : 16,
     "luckyNumber" : [ 1, 8, 0 ],
     "name" : "user16" }
     彈出luckyNumber中的首位數1:     
     > db.c1.update({"age":16},{"$pop":{"luckyNumber":-1}});
     > db.c1.find({"age":16});
{ "_id" : ObjectId("4fc145e3703fa637a073651b"),
  "address" : { "location" : "linkin street no5", "zip" : "111111" },
  "age" : 16,
  "luckyNumber" : [ 8, 0 ],
  "name" : "user16" }
 其中的1被彈出。
      

      以上是關于文檔基本屬性和數組屬性的更新最基本的操作。
    





 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赞皇县| 襄樊市| 太和县| 丹巴县| 精河县| 新和县| 靖远县| 科技| 绥宁县| 宁河县| 石棉县| 南安市| 巨鹿县| 金昌市| 桦川县| 长宁县| 宁武县| 石首市| 仁寿县| 砚山县| 探索| 乳源| 莲花县| 贵溪市| 肇源县| 海兴县| 黑河市| 东乌珠穆沁旗| 巴林右旗| 三河市| 乃东县| 文昌市| 固镇县| 六安市| 阿合奇县| 班玛县| 乐山市| 抚州市| 阳原县| 福泉市| 英超|