sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose valider udenlandsk nøgle (ref)

Jeg blev ved med at google i løbet af den sidste time, og så noget om omfang, der fik mig til at tænke. Følgende kode løste mit problem.

//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);

Selvom dette var en hurtig løsning, var det på ingen måde en indlysende løsning (i hvert fald for mig). Spørgsmålet var omfanget af variabler.




  1. Mongoose at slette (trække) et dokument i et array, virker ikke med ObjectID

  2. Opretter forbindelse til MongoDB ved hjælp af PDO-driver

  3. MongoDB .NET driver og tekstsøgning

  4. Betinget Redis indstillet / kun opdatering med nyeste version?