Във вашата couple
модел, person1
е ObjectID (знам, че го знаете), така че няма очевидно никакво свойство .firstname
.
Всъщност най-добрият начин да постигнете това е да намерите потребителя по неговото първо име и след това да направите запитване към двойката с id
на потребителя.
Този метод може/трябва да стои в couple
модел като статичен метод (опростен примерен код):
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
}
Просто харесайте този пример .
РЕДАКТИРАНЕ:Също така имайте предвид, че реф трябва да бъде _id
(така че не можете да съхранявате с първото име, това така или иначе би било лоша идея).
Вземайки предвид вашата редакция:
Person._id
е може би String
и препратката е ObjectId
, ако е така, опитайте:
{person1: mongoose.Types.ObjectId(Person._id)}
Освен това вашата променлива е person
а не Person
. Опитайте се да регистрирате person
за да видите дали ще получите нещо.
И накрая, моят примерен код е наистина прост, не забравяйте да обработвате грешки и всичко останало (вижте връзката, която ви дадох по-горе, която е пълна).