【发布时间】:2017-06-29 09:00:38
【问题描述】:
我想定义一个 Mongoose Schema,它接受与 String 相关的任何属性名称作为其值。我正在寻找类似于以下内容(无需先写任何可能的属性名称):
var schema = new Schema({
name: String,
someStrings: {
string1: String,
string2: String,
...
stringN: String
}
});
我知道我可以简单地使用Schema.Types.Mixed,但这样就可以在内部使用数组或其他类型。此外,Mongoose 会失去自动检测和保存此属性更改的能力。
var schema = new Schema({
name: String,
someStrings: Schema.Types.Mixed
});
我只想拥有一个对象 (someString),它只包含任意数量的名称到值 String 的任何名称的映射。
在 mongoose 中也有可能发生这样的事情吗?
【问题讨论】:
-
您是否考虑过像
someStrings: [{name: String, value: String}]这样的架构?其中元素中的name值为string1、string2等。 -
是的,我想过这一点,但我想避免使用数组,以便通过简单地调用:
obj.string1或obj.stringN来获取值而无需每次都更轻松地访问属性必须遍历数组。 -
那么我想你必须使用
Mixed。