In je couple
model, person1
is een ObjectID (ik weet dat je het kent), dus het heeft geen duidelijk geen eigenschap .firstname
.
De beste manier om dit te bereiken, is door de gebruiker op zijn voornaam te vinden en vervolgens het paar te ondervragen met de id
van de gebruiker.
Deze methode kan/moet in het couple
. staan model als een statische methode (vereenvoudigd codevoorbeeld):
couple.statics.findByPersonFirstname = function (firstname, callback) {
var query = this.findOne()
Person.findOne({firstname: firstname}, function (error, person) {
query.where($or: [
{person1: person._id},
{person1: person._id}
]).exec(callback);
})
return query
}
Gewoon vind dit voorbeeld leuk .
EDIT:Merk ook op dat de ref de _id
. moet zijn (dus je zou niet kunnen opslaan met de voornaam, dat zou sowieso een slecht idee zijn).
Rekening houdend met uw bewerking:
Person._id
is misschien een String
en de referentie is een ObjectId
, zo ja, probeer dan:
{person1: mongoose.Types.ObjectId(Person._id)}
Uw variabele is ook person
en niet Person
. Probeer person
in te loggen om te zien of je iets krijgt.
Ten slotte is mijn codevoorbeeld heel eenvoudig, vergeet niet om fouten en al te verwerken (zie de link die ik je hierboven heb gegeven, die compleet is).