You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mongoose Schema中为Key字段设置任意类型?

Mongoose 实现任意类型字段的方案

要让Key字段支持任意类型(字符串、数字、对象等),直接使用Mongoose提供的Schema.Types.Mixed类型即可,它专门用于表示无固定类型的字段。

修改后的Schema定义

var data = new Schema({
    Plan: String,
    Key: Schema.Types.Mixed, // 支持任意类型赋值
    Uses: Number,
    UsesLeft: Number,
    AddedOn: Date
});

使用示例

创建文档时可以给Key赋任意类型的值:

// Key为字符串
const stringKeyDoc = new DataModel({
    Plan: "Basic",
    Key: "user_001",
    Uses: 20,
    UsesLeft: 20,
    AddedOn: new Date()
});

// Key为数字
const numberKeyDoc = new DataModel({
    Plan: "Standard",
    Key: 10001,
    Uses: 50,
    UsesLeft: 50,
    AddedOn: new Date()
});

// Key为对象
const objectKeyDoc = new DataModel({
    Plan: "Enterprise",
    Key: { uid: "admin", token: "abcxyz" },
    Uses: 100,
    UsesLeft: 100,
    AddedOn: new Date()
});

注意事项

由于Mixed类型不会自动检测字段的类型变化,当你修改Key的类型时,需要手动调用markModified()方法通知Mongoose,否则修改不会被保存:

// 修改Key的类型为数组
objectKeyDoc.Key = [1, 2, 3];
objectKeyDoc.markModified('Key'); // 标记字段已修改
await objectKeyDoc.save();

内容的提问来源于stack exchange,提问作者FattyDev1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:40:23