当前位置: 首页 > 面试题库 >

阻止Mongoose为子文档数组项创建_id属性

公孙国兴
2023-03-14
问题内容

如果您有子文档数组,Mongoose会自动为每个数组创建ID。例:

{
    _id: "mainId"
    subDocArray: [
      {
        _id: "unwantedId",
        field: "value"
      },
      {
        _id: "unwantedId",
        field: "value"
      }
    ]
}

有没有办法告诉猫鼬不要为数组内的对象创建ID?


问题答案:

很简单,您可以在以下子模式中定义它:

var mongoose = require("mongoose");

var subSchema = mongoose.Schema({
    //your subschema content
},{ _id : false });

var schema = mongoose.Schema({
    // schema content
    subSchemaCollection : [subSchema]
});

var model = mongoose.model('tablename', schema);


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

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

  • 我正在使用本文概述的typescript实现mongoose模型:https://github.com/Appsilon/styleguide/wiki/mongoose-typescript-models 我也不确定在处理子文档数组时这是如何翻译的。假设我有以下模型和模式定义: 将向user.pet子文档添加新宠物的代码: 在查看链接之后,这似乎是处理子文档所必需的理想方法。但是,此场景似乎会引

  • 我有一份这样的文件 上面的文档可以这样概括如下,便于理解。 我需要增加nums子文档中数量的值,该值位于产品子文档中,基于其\u id。 这是我迄今为止所尝试的,但它不起作用,因为我不知道如何捕获nums对象内的\u id,以便更新子子文档数组中的特定对象。 我怎样才能做到这一点?

  • 问题内容: 我试图通过对数据库中的文档进行计数,并使用该数字来创建_id(假设第一个_id为0)来为我的Mongoose模型动态创建_id。但是,我无法从值中设置_id。这是我的代码: 我尝试了多种设置_id的方法,但是它对我不起作用。这是最新的错误: 如果您知道发生了什么事,请告诉我。 问题答案: 您要么需要将该属性声明为架构的一部分(将其注释掉),要么使用该选项并将其设置为(您正在使用该选项,

  • 使用mongoose,我希望搜索具有特定属性的子文档并返回最近的一个。 给定一个特定的用户,我想搜索他们的s,查找他们的