使用名为 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
    },
  },
);