修正するコードがあります。これは、MongoDbインスタンスと対話するためにMongooseを使用するNode.jsアプリケーションです。 Mongooseではいくつかのスキーマがすでに設定されており、いくつか追加しました。MongoDB:アイテムのキー_idがありません
var mongoose = require('mongoose');
var LayerConverted = mongoose.model('MapConvertedLayer');
var newLayer = new LayerConverted();
//newLayer._id is automatically populated with a value
//... add other properties
newLayer.save(function(err)
{
if(err)
{
//...
}
});
:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var MapConvertedProjectSchema = new Schema(
{
project_id : {
type: String,
default: ""
},
dataset_id : {
type: String,
default: ""
},
properties:{
type: {},
default: {}
}
});
MapConvertedProjectSchema.pre('save', function(next) {
next();
});
mongoose.model('MapConvertedProject', MapConvertedProjectSchema);
と
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var MapConvertedLayerSchema = new Schema(
{
parent_id:
{
type: mongoose.Schema.Types.ObjectId
},
class:
{
type: String,
default: 'MapLayer',
trim: true
},
properties:
{
type: {},
default: {}
}
});
//Hook a pre save method to clean date
MapConvertedLayerSchema.pre('save', function(next) {
next();
});
mongoose.model('MapConvertedLayer', MapConvertedLayerSchema);
私はそうのようなMapConvertedLayerスキーマを使用します。これらの中で離れて(小さなデータと罰金働いていた)既存のスキーマを破るこれら2つのスキーマがあります
これはわかりやすく問題なく動作します。私はMapConvertedProjectと同様のコードをしようとした場合しかし、私はエラーを取得する:
var mongoose = require('mongoose');
var ProjectConverted = mongoose.model('MapConvertedProject');
var map_converted = new ProjectConverted();
//map_converted._id is undefined
//I tried adding the comment below to create an _id manually, but it didn't make a difference when I tried to save
//map_converted._id = mongoose.Types.ObjectId();
console.log("Project Converted ID: " + map_converted._id);
//... fill out the other properties on the schema
map_converted.save(function(err)
{
if(err)
{
//...
}
});
は保存がこのエラーを生成します。
にValidationException:1つ以上のパラメータ値が無効であった。アイテム
にキー_idがありませんこれを引き起こしていることは誰でも知っていますか?