I dit couple
model, person1
er et ObjectID (jeg ved, du kender det), så det har ingen åbenlyst ingen egenskab .firstname
.
Den bedste måde at opnå dette på er faktisk at finde brugeren ved dets fornavn og derefter forespørge parret med id
af brugeren.
Denne metode kunne/bør stå i couple
model som en statisk metode (forenklet kodeeksempel):
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
}
Bare synes godt om dette eksempel .
EDIT:Bemærk også, at refen skal være _id
(så du kunne ikke gemme med fornavnet, det ville alligevel være en dårlig idé).
I betragtning af din redigering:
Person._id
er måske en String
og referencen er et ObjectId
, hvis ja, prøv:
{person1: mongoose.Types.ObjectId(Person._id)}
Din variabel er også person
og ikke Person
. Prøv at logge person
for at se, om du får noget.
Endelig er mit kodeeksempel virkelig simpelt, glem ikke at håndtere fejl og det hele (se linket, jeg gav dig ovenfor, som er komplet).