2017-10-03 19 views
0

修正するコードがあります。これは、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がありません

これを引き起こしていることは誰でも知っていますか?

答えて

0

私はこれを理解しました。コードには、同じ名前のダイナモモデルがあって、いろいろなことがあった場所がありました。私はそれがもはや使用されていないように見えるので、この問題を解決したので、すべての参照を除去することができました。

関連する問題