Di couple . Anda model, person1 adalah ObjectID (saya tahu Anda mengetahuinya), jadi jelas tidak ada properti .firstname .
Sebenarnya cara terbaik untuk mencapai ini, adalah menemukan pengguna dengan nama depannya, dan kemudian menanyakan pasangannya, dengan id pengguna.
Metode ini bisa/harus berdiri di couple model sebagai metode statis (contoh kode yang disederhanakan):
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
}
Cukup sukai contoh ini .
EDIT:Perhatikan juga bahwa ref harus _id (jadi Anda tidak bisa menyimpan dengan nama depan, itu akan menjadi ide yang buruk).
Mempertimbangkan pengeditan Anda:
Person._id mungkin sebuah String dan referensinya adalah ObjectId , jika demikian, coba:
{person1: mongoose.Types.ObjectId(Person._id)}
Juga, variabel Anda adalah person dan bukan Person . Coba login person untuk melihat apakah Anda mendapatkan sesuatu.
Akhirnya, contoh kode saya sangat sederhana, jangan lupa untuk menangani kesalahan dan semuanya (lihat tautan yang saya berikan kepada Anda di atas, yang sudah lengkap).