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
}
この例のように、この例のように 。
編集:refは_id
でなければならないことにも注意してください (したがって、名で保存することはできませんでした。とにかくそれは悪い考えです)。
編集の検討:
Person._id
おそらくString
参照はObjectId
、もしそうなら、試してみてください:
{person1: mongoose.Types.ObjectId(Person._id)}
また、変数はperson
です。 Person
ではありません 。 person
をログに記録してみてください 何かを手に入れるかどうかを確認します。
最後に、私のコードサンプルは本当に単純です。エラーなどすべてを処理することを忘れないでください(上記のリンクを参照してください。これは完全です)。