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

MongoDbで友達の友達を見つけるためのグラフデータベースとして使用する

    不可能ではありませんが、MongoDBはこのシナリオには適していません。

    その理由は、MongoDBがJOINを実行しないためです。複数のドキュメントにまたがるクエリが必要な場合は、ドキュメントごとに個別のクエリが必要です。

    あなたの例では、各user ドキュメントには、_idの配列が含まれます 彼らの友達の。 「UserBの友達でもあるUserAの友達のすべての友達」を見つけることは、次のことを意味します。

    1. userAを見つけて、彼の友達を取得します-配列
    2. その配列内のすべてのユーザーを見つけて、友達の配列を取得します
    3. これらのアレイで、フレンドアレイにUserBを持つすべてのユーザーを検索します

    これらはあなたが実行しなければならない3つのクエリです。これらの各クエリの間に、結果セットをアプリケーションに送信する必要があります。アプリケーションは、新しいクエリを作成してデータベースに送り返す必要があります。 2番目のクエリから返される結果セットは非常に大きくなる可能性があります。つまり、3番目のクエリには時間がかかる可能性があります。

    tl; dr: 仕事に適したツールを使用してください。データがグラフベースであり、そのデータに対してグラフベースのクエリを実行する場合は、グラフデータベースを使用します。



    1. logstashを使用してmongoをelasticsearchに接続する方法は?

    2. Mongodbアグリゲーションの複数の条件

    3. MongoDBのドキュメントフィールドの名前を変更するにはどうすればよいですか?

    4. CSVファイル(UTF8以外の文字を含む)をMongoDbにインポートします