sql >> データベース >  >> NoSQL >> MongoDB

マングース検証外部キー(参照)

    私はこの1時間ずっとグーグルを続けていて、スコープについて何かを考えさせられました。次のコードで問題が解決しました。

    //Doctors.js
    var mongoose = require('mongoose');
    var schema = mongoose.Schema({
      email: { type: String }
    }
    module.exports = mongoose.model('Doctors', schema);
    
    //Patients.js
    //var Doctors = require('./Doctors'); --> delete this line
    var mongoose = require('mongoose');
    var schema = mongoose.Schema({
      email: { type: String },
      doctor: { type: String, ref: 'Doctors' }
    }
    schema.pre('save', function (next, req) {
      var Doctors = mongoose.model('Doctors'); //--> add this line
      Doctors.findOne({email:req.body.email}, function (err, found) {
        if (found) return next();
        else return next(new Error({error:"not found"}));
      });
    });
    module.exports = mongoose.model('Patients', schema);
    

    これは簡単な修正でしたが、(少なくとも私にとっては)明らかな修正ではありませんでした。問題は変数の範囲でした。




    1. マングースによるユニットテスト

    2. PyMongo upsertthrowsupsertはboolエラーのインスタンスである必要があります

    3. MongoDB-複数の行を集約

    4. WiredTiger.turtleの権限が原因で、Mongodbを起動できません