sql >> データベース >  >> RDS >> Mysql

couchdbはループを実行できます

    私はあなたが何を求めているのか理解していると思います。答えはMap/Reduceで非常に簡単です。

    次の人のドキュメントがあるとします。

    {
       "name": "Person A",
       "interests" [ "computers", "fishing", "sports" ]
    }
    {
       "name": "Person B",
       "interests" [ "computers", "gaming" ]
    }
    {
       "name": "Person C",
       "interests" [ "hiking", "sports" ]
    }
    {
       "name": "Person D",
       "interests" [ "gaming" ]
    }
    

    おそらく、キーをインタレストとして、値を人の名前(または_id)として出力することをお勧めします。 。

    function (doc) {
       for (var x = 0, len = doc.interests.length; x < len; x++) {
          emit(doc.interests[x], doc..name);
       }
    }
    

    ビューの結果は次のようになります:

    • コンピューター=>人物A
    • コンピューター=>人物B
    • 釣り=>Aさん
    • ゲーム=>人物B
    • ゲーム=>人物D
    • ハイキング=>Cさん
    • スポーツ=>人物A
    • スポーツ=>人物C

    コンピューターを関心のある人のリストを取得するには、key="computers"を送信するだけです。 クエリ文字列の一部として。

    マップにreduce関数を追加する場合は、_countを使用するだけです。 (コンパイルされたreduce関数を使用するためのショートカット)そして、特定の関心を持つすべての人々の数を取得できます。それを使用して、関係を構築するためにクエリする関心を制限することもできます。



    1. MySQLフィールドの先頭と末尾の空白を削除するにはどうすればよいですか?

    2. Azure SQLデータベースのDTUとは何か、必要な量を把握する方法

    3. T-SQLの文字列から拡張ASCII文字を削除するにはどうすればよいですか?

    4. WindowsでのOracleSQLDeveloper入門