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).