2016-09-04 7 views
0

コレクションのサンプルMongooseを使用したMongoDBの動的フィールド名

{ 
     "Orig" : "AGP", 
     "Dest" : "CMN", 
     "Description_Flight" : "One-Stop-Narrow Type", 
     "Description_Flight_2" : "WESTERN EUROPE/WESTERN EUROPE", 
     "Mkt_Al" : "0B" 

    } 

。コレクションCOEFFサンプル:私が欲しいもの

{ 
    "Regions" : "WESTERN EUROPE/WESTERN EUROPE", 
    "Non-Stop-Narrow Type" : 2.4109, 
    "Non-Stop-Supersonic" : 2.71828, 
    "One-Stop-Narrow Type" : 2.22554, 
    "One-Stop-Turbo" : 0.92312, 
    "One-Stop-Wide Type" : 11.24586, 
    "One-Stop Online-Turbo" : 0.07577 

} 

私は私の出発コレクション、Flightsを持っており、各ドキュメントのために私はスコア、Description_Flight_2Description_Flightに基づいてスコアを載せていきたいと思います。

例:

例えば、私が持っている私のサンプルで:だから

 "Description_Flight" : "One-Stop-Narrow Type", 
     "Description_Flight_2" : "WESTERN EUROPE/WESTERN EUROPE", 

、私はCoeffコレクションに行き、そして地域を見つける必要があります:

  "WESTERN EUROPE/WESTERN EUROPE" 

適切な値をとってください。私はこの行でこの値を取るべきです:

 "One-Stop-Narrow Type" : 2.22554, 

私が試してみましたこの:ここ

mongoose.connect('mongodb://localhost/mydb'); 

var cSchema = new Schema({},{ strict: false, collection: 'flights' }),  
    dflights = mongoose.model("flights", cSchema); 
var rSchema = new Schema({},{ strict: false, collection: 'coeff' }), 
    coeff = mongoose.model("coeff", rSchema); 
    mongoose.set('debug', false); 

    mongoose.connection.on("open", function (err) { 
    if (err) throw err; 


    dflights.find({}).lean().exec(function (err, flights) { 
    if (err) throw err; 

    flights.forEach(function(flight) { 

var Flight_Description = "", score =0 ; 

    coeff.findOne({Regions : flight.Description_Flight_2}).lean().exec(function (err, coef) { 

そして重要な行:

Flight_Description = flight.Description_Flight; 
    score = (coef != null) ? coef.Flight_Description : "Missed data"; 

ここで最後の行

if (score != 0) 
    dflights.collection.update({_id:flight._id}, { $set : { score :score } });   
}); 
}); 
}); 
}); 

どうすればいいですか?

答えて

0

正しいコードは次のようになります。

score = (coef != null) ? coef[Flight_Description] : "Missed data"; 
+0

は、それが動作します、ありがとうございました。 –

関連する問題