没有_id的Mongoose数据保存
我正在使用mongoose和node.js应用程序。 logging中不需要_id字段。 我正在使用此代码来保存没有_id字段的logging。 但它是给错误的
文件在保存之前必须有一个_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); } });
我正在使用mongoose版本3.8.14
不幸的是,你不能跳过拥有文档的主键,但你可以覆盖主键的内容,你可以为每个文档定义自己的主键。
尝试下面的模式相同。
var PlayerSchema = new mongoose.Schema({ _id : { type: Number }, player_name : { type: String }, player_age : { type: Number }, player_country : { type: String },
});
我用_id
取代了你的player_id
。 现在您可以控制文档的主键,系统不会为您生成密钥。
有一些插件也可以autoincremet
键的autoincremet
。 https://github.com/chevex-archived/mongoose-auto-increment 。 你也可以试试这些。
此外,关于您遇到的错误:任何文档是一个对象,应该被包裹在curly brackets
您不能在同一个文档中定义两个独立的对象。 所以你得到这个错误。
没有_id
保存数据是不可能的