我有嵌套的模式.并且我想在父模式中设置子模式的默认值.以下是我的方案和我try 过的:

const daySchema = mongoose.Schema({
    day: String,
    am1: periodSchema,
    am2: periodSchema,
    am3: periodSchema,
    pm1: periodSchema,
    pm2: periodSchema,
    pm3: periodSchema,
});


const programoSchema = mongoose.Schema({
    monday: {
        type: daySchema,
        default: {
            ...daySchema,
            day: "Pazartesi",
        },
    },
    tuesday: daySchema,
    wednesday: daySchema,
    thursday: daySchema,
    friday: daySchema,
});

但这并不管用.我该怎么办?先谢谢你.

推荐答案

只需删除...daySchema个问题就可以解决.

monday: {
        type: daySchema,
        default: {
            day: "Pazartesi",
        },
    },

但是,如果像您的代码中一样,缺省值是动态的,更好的解决方案是创建一个接受缺省值并返回模式的函数,如下所示.

const periodSchema = mongoose.Schema({
  hour: {
    type: String,
    default: "00:00"
  }
});


const daySchema = function (defaultDay) { 
                      return {
                          type: new mongoose.Schema({
                                      day: String,
                                      am1: periodSchema,
                                      am2: periodSchema,
                                      am3: periodSchema,
                                      pm1: periodSchema,
                                      pm2: periodSchema,
                                      pm3: periodSchema,
                                  }),
                          default: {
                              day: defaultDay
                          }
                      }
}


const programoSchema = mongoose.Schema({
    monday: daySchema("Pazartesi"),
    tuesday: daySchema(),
    wednesday: daySchema(),
    thursday: daySchema(),
    friday: daySchema(),
});

const Program = mongoose.model("programs", programoSchema);

console.log(new Program());
<script src="https://cdn.jsdelivr.net/npm/mongoose@7.2.3/dist/browser.umd.min.js"></script>

Node.js相关问答推荐

Node.js promise 循环中的所有多个API调用

当FastifyJS向客户端发送响应时,apache 不会将其发送给他

DocuSign:调用createEntaine时,RequestJWTApplicationToken返回401 AUTHORIZATION_INVALID_TOKEN

如何在不丢失其他键的情况下解开子文档数组,然后反转该过程?

获取驱动器文件夹的直接子文件夹时出现问题

如何防止Socket-io实例化React/Next.js中的两个套接字(当前在服务器*和*客户端实例化)

我收到警告:发现函数rs-ms-v1不受支持的运行时nodejs18.x× 不受支持的运行时

Next.js 路由不起作用 - 页面未正确加载

如何在 node /快速服务器上配置 mongoDB

使用 node/express/Multer,您如何首先判断参数?

Google Calendar API FreeBusy 外部用户

使用新react 18.0.0 的 create-react-app my-app redux 错误

使用服务帐户将 Firebase 应用程序部署到 Heroku(使用 dotenv 的环境变量)

JSHint 是否支持异步/等待?

在 Mongoose 中创建外键关系

fs.createWriteStream 不会立即创建文件?

node.js 示例

为什么 Node.js 没有原生 DOM?

Firestore:多个条件 where 子句

'node' 未被识别为内部或外部命令