4

2 つのモデル オブジェクトがあります。医師と病院。モデル定義は次のようになります。

module.exports = {

  schema: true,

  autoUpdatedAt: true,
  autoCreatedAt: true,
  attributes: {
    name: {
      type: 'string',
      required: true,
      unique: true
    },
    hospitals: {
      collection: 'hospital',
      via: 'doctors',
      dominant: true,
    },
  }
};

module.exports = {
  schema: true,
  autoUpdatedAt: true,
  autoCreatedAt: true,
  attributes: {
    name: {
      type: 'string',
      required: true,
      unique: true
    },
    doctors: {
      collection: 'doctor',
      via: 'hospitals',
    },
  }
};

特定の病院にマップされている医師を照会するにはどうすればよいですか? キーワードに関するいくつかの投稿を読みましたthroughが、スルー/結合テーブルに保持するレコードを取得できませんでした。自動結合テーブルにクエリを実行できれば機能するように思えますが、このタイプのクエリを実行する「公式の」方法があるかどうかに興味があります。

私の現在のクエリは次のようになります。Doctor.find().where({'hospitals': ['548303dcf49435ec4a01f2a2','548303cbf49435ec4a01f2a0']}).populate('hospitals').exec(function (err, doctors) { ... });

それが重要な場合、基礎となるデータベースはmongoです。

4

1 に答える 1