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