没有_id的Mongoose数据保存

mab*_*224 5 mongoose node.js

我在node.js应用程序中使用mongoose.我不希望_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);
            }
        });
Run Code Online (Sandbox Code Playgroud)

我使用的是mongoose版本3.8.14

Min*_*ain 3

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

尝试以下相同的架构。

var PlayerSchema = new mongoose.Schema({
_id :  { type: Number },
player_name : { type: String },
player_age  : { type: Number },
player_country : { type: String },
Run Code Online (Sandbox Code Playgroud)

} );

我已将你的替换player_id_id. 现在您可以控制文档的主键,系统不会为您生成密钥。

有一些插件也可以autoincremet为您的主键执行此操作。https://github.com/chevex-archived/mongoose-auto-increment。您也可以尝试这些。

另外,关于您收到的错误:任何文档都是一个对象,应该包装在内部,curly brackets您不能在同一文档中定义两个独立的对象。所以你会收到这个错误。