2016-06-14 9 views
0

私はすべての投稿/スレッド関連情報とすべての "グループ"投稿関連情報が格納されている1つのテーブルがmongodbに格納されているウェブサイトで働いています。mongoコレクションとmysqlテーブルの間の結合を実装する方法

すべてがうまくいきます。今私はグループの投稿にフィルタを追加する必要があります。そのためには、mongoの "Group" Postsコレクションとmysqlの "posts"テーブルの両方から情報を取得する必要があります。

私は "グループ" のコレクションから、あなたに1つの文書をお見せしましょう:

{ 
    "_id" : NumberLong("5834246781632"), 
    "created_by" : "3691203254400", 
    "title" : "some title here", 
    "lowcase_title" : "some title here", 
    "date" : "2015-12-24 11:50:42", 
    "cat" : "724", 
    "description" : "dasf", 
    "members" : ["3691203254400", "3693509330048"], 
    "posts" : ["1471301175296", "1473939604352", "1479643049536"], 
    "is_deleted" : NumberLong(0) 
} 

と ポストテーブルには、ID、タイトル、created_date、CREATED_BY ...などの列が含まれています。

最後の2週間にグループに投稿された「投稿」数で「グループ」を並べ替えるフィルタを追加する必要があります。 ( "posts"サブグループの上のグループコレクションでは、そのグループに投稿IDが含まれています)

これらの2つのテーブルを結合できれば、簡単にフィルタを追加できます。

私はYii 1.xで働いています。

誰かが私をより良く導くことができますか?

答えて

2

MySQLとMongoDBは、互いに通信する方法がない完全に分離されたテクノロジなので、アプリケーション側でJOINを実装することはできません。つまり、あるデータベースを最初に照会し、その結果を使用してもう一方の照会を照会する必要があります。最初に照会するものは、あまりにも多くの不要なデータをアプリケーションにロードすることを避けるために、最もフィルタリングできるものでなければなりません。

+0

私はすでに持っている明らかな解決策です。しかし、私はこれらの2つのデータベースを結びつけて私に望ましい出力を与えることができるかどうか疑問に思っていました。その後、長い手順に従う必要はありません。 –

関連する問題