Nem*_*ein 6 javascript mongoose mongodb node.js
我正在尝试在Mongoose中创建一个具有映射(对象,关联数组,键值对)的模式,但到目前为止还没有成功.
我的架构的文档必须是这样的:
{
"_id": ObjectId("..."),
"groups"
{
"groupA":
{
"value1": "...",
"value2": "..."
},
"groupB":
{
"value3": "...",
},
"groupC":
{
"value4": "...",
"value5": "...",
},
...
}
}
Run Code Online (Sandbox Code Playgroud)
groups是具有可变数量的键的对象.我不提前知道这些密钥,因为它将由用户创建.
组中的每个条目都是另一个对象.和以前一样,我不知道密钥标识符,但我知道值是String(或布尔值,或者数字,无关紧要).
当然,这些键是字符串.
在Mongoose中甚至可能(无论如何构建这样的模式/模型)?
最佳做法是将任何动态数据保留在字段名称之外.像这样的用例的典型方法是创建groups
一个数组并将组的名称移动到name
包含对象的字段中.然后,您可以使用该Mixed
类型包含用户定义的值集:
{
"_id": ObjectId("..."),
"groups":
[
{
name: "groupA",
values: {
"value1": "...",
"value2": "..."
}
},
{
name: "groupB",
values: {
"value3": "..."
}
},
{
name: "groupC",
values: {
"value4": "...",
"value5": "..."
}
},
...
]
}
Run Code Online (Sandbox Code Playgroud)
您将架构定义为:
var schema = new Schema({
groups: [{
name: String,
values: Schema.Types.Mixed
}]
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14409 次 |
最近记录: |