下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > DB2 > mongoDB數據庫基礎 之 使用投影剔除‘額外’字段的操作過程

          mongoDB數據庫基礎 之 使用投影剔除‘額外’字段的操作過程

          時間:2024-02-05 12:47作者:下載吧人氣:32

          簡介

          實際開發過程中,為便于開發人員定位問題,常存在多個額外的字段。例如:增加createdAt、updatedAt字段以查看數據的創建和更改時間。而對于客戶端而言,無需知道其存在。針對以上情況,本文詳細介紹了“額外”字段的用途以及處理過程。

          技術棧

          • mongodb 4.0.20
          • mongoose 5.10.7

          mongodb中,collection中存儲的字段并不僅僅有業務字段。有些情況下,會存儲多余的字段,以便于開發人員定位問題、擴展集合等。

          額外的含義是指 和業務無關、和開發相關的字段。這些字段不需要被用戶所了解,但是在開發過程中是至關重要的。

          1.2 產生原因

          產生額外字段的原因是多種多樣的。

          • 如使用mongoose插件向db中插入數據時,會默認的生成_id、__v字段
          • 如軟刪除,則是通過控制is_deleted實現..

          2 額外字段的分類

          額外字段的產生原因有很多,可以以此進行分類。

          2.1 _id、__v字段

          產生原因:以mongoose為例,通過schema->model->entity向mongodb中插入數據時,該數據會默認的增加_id、__v字段。

          _id字段是由mongodb默認生成的,用于文檔的唯一索引。類型是ObjectID。mongoDB文檔定義如下:


          MongoDB creates a unique index on the _id field during the creation of a collection. The _id index prevents clients from inserting two documents with the same value for the _id field. You cannot drop this index on the _id field.<

          __v字段是由mongoose首次創建時默認生成,表示該條doc的內部版本號。


          The versionKey is a property set on each document when first created by Mongoose. This keys value contains the internal revision of the document. The versionKey option is a string that represents the path to use for versioning. The default is __v.

          2.2 createdAt、updatedAt字段

          createdAt、updatedAt字段是通過timestamp選項指定的,類型為Date。


          The timestamps option tells mongoose to assign createdAt and updatedAt fields to your schema. The type assigned is Date.By default, the names of the fields are createdAt and updatedAt. Customize the field names by setting timestamps.createdAt and timestamps.updatedAt.

          2.3 is_deleted字段

          is_deleted字段是實現軟刪除一種常用的方式。在實際業務中,出于各種原因(如刪除后用戶要求再次恢復等),往往采用的軟刪除,而非物理刪除。

          因此,is_deleted字段保存當前doc的狀態。is_deleted字段為true時,表示當前記錄有效。is_deleted字段為false時,表示當前記錄已被刪除。

          3 額外字段相關操作

          3.1 額外字段生成

          _id字段是必選項;__v、createdAt、updatedAt字段是可配置的;status字段直接加在s對應的chema中。相關的schema代碼如下:

          isdeleted: {
           type: String,
           default:true,
           enum: [true, false],
          },
          id: {
           type: String,
           index: true,
           unqiue: true,
           default:uuid.v4(),
          }},
          {timestamps:{createdAt:'docCreatedAt',updatedAt:"docUpdatedAt"},versionKey:false});
          標簽MongoDB,技術文檔,數據庫,MongoDB

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 中文字幕一区二区三区日韩精品| 亚洲AV成人精品日韩一区| 亚洲毛片不卡av在线播放一区| 曰韩精品无码一区二区三区| 亚洲.国产.欧美一区二区三区 | 久久久久国产一区二区| 亚洲一区免费观看| 日本一区二区三区高清| 国产精品主播一区二区| 在线观看一区二区三区视频| 国产高清在线精品一区| 日韩精品无码一区二区三区不卡 | 国产主播福利精品一区二区| 最新欧美精品一区二区三区| 色窝窝无码一区二区三区色欲| 无码日韩精品一区二区免费暖暖| 国偷自产一区二区免费视频| 夜夜嗨AV一区二区三区| 无码国产伦一区二区三区视频 | 国产精品无码AV一区二区三区| 国产一区二区在线视频| 亚洲线精品一区二区三区影音先锋| 国产剧情国产精品一区| 亚欧免费视频一区二区三区| 天堂国产一区二区三区| 一区二区视频传媒有限公司| 国产午夜毛片一区二区三区| 中文字幕精品亚洲无线码一区应用| 午夜福利av无码一区二区| 国产精品日本一区二区在线播放| 亚洲无码一区二区三区| 精品国产AV一区二区三区| AV天堂午夜精品一区二区三区| 日韩精品一区二区三区中文3d| 国产精品第一区第27页| 国产在线aaa片一区二区99| 丰满人妻一区二区三区视频53| 日日摸夜夜添一区| 福利视频一区二区牛牛 | 亚洲夜夜欢A∨一区二区三区| 无码国产精品一区二区免费I6 |