mongoose document 判斷屬性是否存在的問題

mongoose schema 如下

const userSchema = new Schema({
  username: String,
  password: String,
  age: Number,
  isLogin: Boolean,
});

我們插入一條記錄

const user = new User({
    username: 'pandora',
    password: 'pandora', // 真實情況下密碼不會存儲明文 
})
await user.save();

當我們正常判斷一個屬性是否存在時

if (user.age) {
    // doSomething
}

這是沒有問題的。

當我們判斷一個布爾類型的屬性時,一般會採用這種方式

console.log('isLogin' in user);  // true

由於我們定義了schema約束,所以所以定義在schema上的屬性都會設置在document上,即使沒有指定默認值,所以我們應該採用以下這種方式

console.log(typeof user.isLogin === 'boolean');  // false
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章