猫鼬支持Set数据类型吗?

时间:2019-07-08 08:59:16

标签: node.js mongoose

我想存储任何类型的唯一值,无论是原始值还是对象引用。有可能吗例如:

const activity = mongoose.Schema({
   participants : {
        type: Set, // <-- is possible?
        required: true,
   },
   // ... 
}

2 个答案:

答案 0 :(得分:0)

否,到目前为止,它支持最新版本[5.6.3]中的以下数据类型。

  

字符串,   数,   日期,   缓冲,   布尔值   混合,   ObjectId,   数组   小数128,   地图

有关猫鼬模式的更多信息,请参阅here

有关mongoDB支持的数据类型,请参考here

答案 1 :(得分:0)

您可以使用 setter 来创建类似集合的数组:

const activity = mongoose.Schema({
   participants : {
        type: Schema.Types.Mixed, // Array would probably also work
        required: true,
        set: toSet
   },
   // ... 
}

function toSet(a) {
    return [...new Set(a)];
}