使用名为 Object 键的 uuid 创建 mongodb 文档
Create mongodb document with uuid named Object keys
我想在 mongoose 中创建如下所示的文档。有一个 pageElements 对象,里面有 uuid 对象键。
{
"pageElements": {
"fc6b151-cd5-3c1-0e00-241b4411d4eb": {
"containers": {
"de325a-acb2-e0a1-e521-20b3e81e33f": {
"components": [{
...
}],
}
},
},
"075f7c-5aff-c850-a731-a8dff1bea5f8": {
"containers": {
...
}
}
},
}
我试过这样创建架构:
const componentSchema = new mongoose.Schema(
{
...
},
);
const containersSchema = new mongoose.Schema(
{
components: [{ type: componentSchema, required: true }],
},
);
const pageElementsSchema = new mongoose.Schema(
{
containers: { type: containersSchema, required: true },
},
);
const pageSchema = new mongoose.Schema(
{
pageElements: {
type: pageElementsSchema,
},
},
);
但是新创建的文档只包含一个空的 pageElements 对象。
使用Map作为
const componentSchema = new mongoose.Schema(
{
...
},
);
const containersMapSchema = new mongoose.Schema(
{
components: [{ type: componentSchema, required: true }],
},
);
const pageElementsMapSchema = new mongoose.Schema({
containers: {
type: Map,
of: containersMapSchema
}
})
const pageSchema = new mongoose.Schema(
{
pageElements: {
type: Map,
of: pageElementsMapSchema
},
},
);
我想在 mongoose 中创建如下所示的文档。有一个 pageElements 对象,里面有 uuid 对象键。
{
"pageElements": {
"fc6b151-cd5-3c1-0e00-241b4411d4eb": {
"containers": {
"de325a-acb2-e0a1-e521-20b3e81e33f": {
"components": [{
...
}],
}
},
},
"075f7c-5aff-c850-a731-a8dff1bea5f8": {
"containers": {
...
}
}
},
}
我试过这样创建架构:
const componentSchema = new mongoose.Schema(
{
...
},
);
const containersSchema = new mongoose.Schema(
{
components: [{ type: componentSchema, required: true }],
},
);
const pageElementsSchema = new mongoose.Schema(
{
containers: { type: containersSchema, required: true },
},
);
const pageSchema = new mongoose.Schema(
{
pageElements: {
type: pageElementsSchema,
},
},
);
但是新创建的文档只包含一个空的 pageElements 对象。
使用Map作为
const componentSchema = new mongoose.Schema(
{
...
},
);
const containersMapSchema = new mongoose.Schema(
{
components: [{ type: componentSchema, required: true }],
},
);
const pageElementsMapSchema = new mongoose.Schema({
containers: {
type: Map,
of: containersMapSchema
}
})
const pageSchema = new mongoose.Schema(
{
pageElements: {
type: Map,
of: pageElementsMapSchema
},
},
);