2017-06-20 4 views
0
SELECT * FROM smo_images 
WHERE search_term in search_helpers (search helpers is array or keywords) 
OR search_term = smo_code 
OR search_term = size 
OR search_term = category; 

私はPouchDBで上記のようなことを達成したいと思います。私はnosqlとPouchDBを初めて使用しています。ドキュメントは混乱していて、簡単ではありません。Pouchdbで達成したいことのためのSQLクエリ '

+2

何を試しましたか?あなたはそれでどんな問題を抱えていますか? – Flimzy

答えて

1

私の場合、the documentationはかなり明快で簡単です。これは、SQLの古い学校の方法に言及している:

SQLデータベースのインデックスインデックスがどのように機能するかについて

クイック補習:MySQLとPostgreSQLのような リレーショナルデータベースでは、あなたが通常 どんなフィールドにあなたを照会することができます欲しい:

SELECT * FROM pokemon WHERE name = 'Pikachu'; 

しかし、あなたはあなたのパフォーマンスがひどいことしたくない場合は、まず インデックスを追加します。

ALTER TABLE pokemon ADD INDEX myIndex ON (name); 

インデックスのジョブのでクエリはOではなく O(N)時間(ログ(n))を実行時、フィールドはデータベース内のBツリー に格納されていることを確認することです。

そこから、それはNoSQLのと比較すると起動します:上記のすべては、CouchDBのと のMongoDBなどのドキュメント店でも同様ですが、概念的のNoSQLデータベースで

インデックス

をそれは少し異なります。デフォルトで のドキュメントは、1つの主キー (MongoとCouchの両方で_idと呼ばれます)を持つスキームレスブロブであるとみなされ、他のキーは個別に である必要があります。概念はほぼ同じです。それはほとんどが の異なる語彙です。

CouchDBでは、クエリはmap/reduce関数と呼ばれます。これは、 がNoSQLデータベースのように、CouchDBは 複数のコンピュータにまたがり、 パラレルで効率的なクエリ操作を実行できるように設計されているからです。基本的には、クエリをマップ 関数とreduce関数に分割し、それぞれがマルチノードクラスタで並列に で実行される可能性があります。

マップ/リデュース機能、一時的/永続的なビューなどに関する説明とサンプルコードが続きます。

関連する問題