sql >> データベース >  >> NoSQL >> MongoDB

マングースは参照プロパティでドキュメントを検索します

    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をログに記録してみてください 何かを手に入れるかどうかを確認します。

    最後に、私のコードサンプルは本当に単純です。エラーなどすべてを処理することを忘れないでください(上記のリンクを参照してください。これは完全です)。




    1. mongoDBで配列/サブオブジェクトにインデックスを付けると、重複キーエラーが発生します

    2. ネストされた配列マングースの更新

    3. MongoDB:入力ドキュメント変数との一致の使用

    4. mongodbnodejs-循環構造の変換