【发布时间】:2021-05-04 07:53:11
【问题描述】:
我在 node.js 应用程序中使用猫鼬。我不想记录中的 _id 字段。 我正在使用此代码来保存没有 _id 字段的记录。但它给出了错误
文档在保存前必须有一个_id
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var PlayerSchema = new Schema({
player_id : { type: Number },
player_name : { type: String },
player_age : { type: Number },
player_country : { type: String }
}
, { _id: false }
);
var Player = mongoose.model('Player', PlayerSchema );
var athlete = new Player();
athlete.player_id = 1;
athlete.player_name = "Vicks";
athlete.player_age = 20;
athlete.player_country = "UK";
athlete.save(function(err) {
if (err){
console.log("Error saving in PlayerSchema"+ err);
}
});
我使用的是猫鼬版本 3.8.14
【问题讨论】:
-
你真的需要保存没有_id的数据,还是你不想自己声明?
-
我不想在记录中保存 _id。我正在生成自己唯一的 player_id。
-
您可以在 player_id 字段上定义唯一索引以确保唯一性,也可以将您的 player_id 重命名为 _id。无论如何,一个文档在 mongoDB 中必须有一个 _id,您只需将它的创建委托给数据库层。您是否尝试过跳过架构定义中的
{ _id: false }?