在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/數據庫  HTML/ Mongodb 保存數據如何保證字段的完整性?

Mongodb 保存數據如何保證字段的完整性?

例如:
我后端的model定義了一個對象,

user = {
name: required false,
mobile: required true,
email: required false
}

由于我的name字段跟email字段都是非必填項, 所以在前端我沒有傳,傳了如下格式的json:

user =  {
mobile: 1118828819
}

后端接收到這個json后直接保存在MongoDB中,當我下次需要調用這個用戶的信息時,后端從數據庫讀取該條記錄,但是,有一個問題,剩余的兩個字段都沒有,這樣就與我跟前端定義的接口字段,有出入,這要怎么解決呢?

回答
編輯回答
北城荒

@歐兜兜是素姀 的回答是正確的,mongoose的Schema可以使用required屬性來規(guī)范數據,這樣不符合要求的數據存入mongodb會失敗的。

但是,就算是數據庫規(guī)范了,前端也不能假設數據庫返回的數據沒問題,前端還是需要對后端返回的數據進行驗證和容錯。因為前端和后端是分離的,前端需要假設后端會出錯。事實上,后端出錯也是無法避免的,因為代碼一直在修改,哪天后端不小心刪掉required字段呢?

2018年9月20日 06:45
編輯回答
歆久

我不知道你連接mongoDB用的是mongodb.js還是mongoose.js
如果是mongodb.js,你在創(chuàng)建這個用戶的時候做一下判空,沒有的話給一個默認值存進去
如果是mongoose.js,在定義Schema的時候可以設置默認值,如

const schema = new Schema({
    name:{
        type:String,
        required:true,
        default:'name'
    },
    //...
});
2017年11月6日 21:23
編輯回答
夢囈

是否可以加一個defult為空字符串

2018年2月12日 18:48