当前位置: 首页 > 知识库问答 >
问题:

Mongoose未为子文档生成_id

宫子晋
2023-03-14

我有一个简单的模式,里面有一个数组。当我创建一个包含映射数组中的项的新项时,映射数组中的项会自动分配_ID。但是,当我试图将项添加到现有项的映射数组时,新的映射是用null的_id创建的。我如何让mongoose为我生成这个_ID?我在文件里找不到。

  {
    email: {
      type: String,
      required: true,
      index: true,
    },
    mapping: [
      {
        mapToField: {
          type: String,
          enum: [
            "subject",
            "location",
            "company",
            "hours",
            "rate",
            "startDate",
            "endDate",
          ],
          required: true,
        },
        mapToLabel: {
          type: String,
          required: true,
        },
        regex: {
          type: String,
          required: true,
        },
      },
    ],
  },
  { timestamps: true }
);
    let item = await Mappings.findOne({ _id: id });
    return await item.mapping.create(mapping);
    return await Mappings.update(
      { _id: id },
      { $push: { mapping } },
      { upsert: true }
    );

共有1个答案

陈铭晨
2023-03-14

尝试将映射定义为用户架构文件中的架构。

const mappingSchema = new mongoose.Schema({
        mapToField: {
          type: String,
          enum: [
            "subject",
            "location",
            "company",
            "hours",
            "rate",
            "startDate",
            "endDate",
          ],
          required: true,
        },
        mapToLabel: {
          type: String,
          required: true,
        },
        regex: {
          type: String,
          required: true,
        }
})

然后您的主模式变成

{
  email: {
    type: String,
    required: true,
    index: true
  },
  mappings: [mappingSchema]
}
 类似资料:
  • 我正致力于将Springfox 2.2.2整合到我的Spring MVC项目中,但是没有像我所说的那样生成API文档。下面是关于我的配置的一些信息。 我已经提供了以下依赖项(以及其他库,如fasterxml、WebJar、正确版本的spring等) Springfox的配置如下: 示例性控制器如下所示: 使用上面的设置,当我执行URL:localserver:8080/myapp/swagger-

  • 我有一份这样的文件: 我想通过将其与数量字段(2*800)相乘来更新价格字段,其中的结果将更新/分配给价格。(对于本例,价格更新为1600)。 更新后的文档: 我的选择查询如下: 我怎样才能做到这一点?

  • 我试图更新一个子文档(有效),然后更新除上一个子文档之外的多个子文档。基本上,每次

  • 我想使用mongoose从多个文档更新多个子文档。 我目前的代码是: 模式的一部分是: 但是这段代码只更新id arr中的最后一个元素。

  • 我很好奇在我的主模式中使用子文档和更深层文档的利弊: 或者 我目前到处都在使用subdocs,但我主要想知道我可能遇到的性能或查询问题。

  • 问题内容: 如果您有子文档数组,Mongoose会自动为每个数组创建ID。例: 有没有办法告诉猫鼬不要为数组内的对象创建ID? 问题答案: 很简单,您可以在以下子模式中定义它: