Mongoose 如何真正设置猫鼬默认值,尤其是布尔值?

Mongoose 如何真正设置猫鼬默认值,尤其是布尔值?,mongoose,find,boolean,default,Mongoose,Find,Boolean,Default,我有以下模式: const profileSchema = new Schema({ created: { type: Date, default: Date.now }, readonly: { type: Boolean, default: false } }); const Profile = mongoose.model('profile',profileSchema); 但是,我发现如果查询“日期”,则会在文档上设置日期,但如果查询“只

我有以下模式:

const profileSchema = new Schema({
created: {
    type: Date,
    default: Date.now
    },
readonly: {
    type: Boolean,
    default: false
    }
});
const Profile = mongoose.model('profile',profileSchema);
但是,我发现如果查询“日期”,则会在文档上设置日期,但如果查询“只读”,则不会将其设置为false,但会在文档上返回false。例如:

Profile.find({readonly: false})
将不返回任何文档。但是,如果我这样做:

Profile.find({})
我将收到所有文件,并且“只读”属性将被列为“假”

同时,如果我在创建文档时:

var newProfile = { readonly: false };
new Profile(newProfile).save();
上面相同的find命令将列出此文档。布尔值的默认值似乎是隐式设置的,并且在读取文档而不是查询文档时可用。是否有办法确保在所有文档上设置和查找日期属性,就像“创建”日期属性一样,还是必须在所有新文档上手动设置它?

而不是

readonly: {
    type: Boolean,
    default: false
}
请尝试将“”设置为false,这样它将:

readonly: {
    type: Boolean,
    default: 'false'
}
根据mongoose,mongoose将以下值转换为false:

  • “假”
  • 0
  • “0”
  • “不”
    • 而不是

      readonly: {
          type: Boolean,
          default: false
      }
      
      请尝试将“”设置为false,这样它将:

      readonly: {
          type: Boolean,
          default: 'false'
      }
      
      根据mongoose,mongoose将以下值转换为false:

      • “假”
      • 0
      • “0”
      • “不”