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

なぜlaravelは多くの関係があるのに空の配列を返すのですか?

    hasManyのコンテキストでは、外部キーへのアプローチは間違っています。代わりに、team_idという単一の列がチケットに含まれている必要があります。そうすれば、次のことができます。

    public function teams()
    {
         return $this->HasMany('App\Team', 'team_id');
    }
    

    チケットがそのように見える場合、どちらが機能しますか。

    {
          "_id": ObjectId("5f32d9bb486e94459b6531c3"),
          "subject": "\"URGENT\" Non-Compliance In (Eastern Region)",
          "content": "abc",
          "user_team": "5f044199e40dfe4847056785",
          "team_id":"5f3012bbb7c2bc422e4da5a2"
          "organization_id": "5f74359c7dcc8f6fbb2b47e2"
    }
    

    代わりに、1つのチームが多くのチケットを持っていて、その逆を行うことができるため、実際には多対多を行っているように見えます。これはそのように定義できます。これにより、おそらく両方のモデルにデータが追加されますが、私はMongodbの専門家ではありません。 Laravelで 。

    public function teams()
    {
        return $this->belongsToMany(
            Team::class, null, 'ticket_ids', 'team_ids'
        );
    }
    

    これらはすべて、ドキュメント にあります。 。



    1. ドキュメントで検索された埋め込みプロパティの最後のレベルのみを返します

    2. 配列から最初に一致するサブドキュメントを検索して返す(Meteor / Mongo)

    3. RリストをJSONに変換する

    4. MongoDBレプリカはプライマリを設定していません。新しいプライマリを強制する必要があります