gpt4 book ai didi

node.js - 没有_id的 Mongoose 数据保存

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:24 25 4
gpt4 key购买 nike

我在 node.js 应用程序中使用 mongoose。我不想记录 _id 字段。我正在使用此代码来保存没有 _id 字段的记录。但是报错

document must have an _id before saving

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);
}
});

我正在使用 Mongoose 版本 3.8.14

最佳答案

不幸的是,您不能跳过文档的主键,但您可以覆盖主键内容,您可以为每个文档定义自己的主键。

尝试使用以下架构。

var PlayerSchema = new mongoose.Schema({
_id : { type: Number },
player_name : { type: String },
player_age : { type: Number },
player_country : { type: String },

});

我已将您的 player_id 替换为 _id。现在您已经控制了文档的主键,系统不会为您生成主键。

有一些插件也可以为您的主键做 autoincremethttps://github.com/chevex-archived/mongoose-auto-increment .您也可以试试这些。

此外,关于您遇到的错误:任何文档都是一个对象,应该被包裹在大括号中,您不能在同一个文档中定义两个独立的对象。所以你收到了这个错误。

关于node.js - 没有_id的 Mongoose 数据保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com