【问题标题】:How to remove _id from collection in mongodb using mongoose如何使用 mongoose 从 mongodb 的集合中删除 _id
【发布时间】:2025-12-17 01:10:01
【问题描述】:

尝试从集合中删除 _id 但不起作用。我不知道如何解决这个问题。任何人都需要帮助。

model.js:

const schemmaodel = new mongoose.Schema({
  "name": { type: string}
}, { _id: false, versionKey: false });

data.controller.js:

var newModel = require(path.resolve('./models/model.js'))(collectionName);
newModel.create({}, function(err, doc) {
});

【问题讨论】:

  • 收到文件后尝试删除_id。 delete doc._id
  • @Doc-Han:怎么做?你能更新我的代码吗?
  • @Doc-Han:你有什么解决办法吗?

标签: mongodb mongoose mongodb-query


【解决方案1】:

_id 就像集合的主键。如果 _id 未在 Schema 中指定,则 Mongoose 默认将 _id 类型为 ObjectId

根据猫鼬documentation,您只能在子文档上禁用_id。因此,在您的情况下,schemmaodel 被视为父架构,并且由于您在父架构上设置了 { _id: false } 选项,同时保存它会引发与缺少 _id 相关的错误

【讨论】:

    最近更新 更多