問題タブ [couchdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
database - cURLを使用してcouchdbスタンドアロンアタッチメントを作成する
私は現在、couchdb をいじり、このページの下部で説明されている「スタンドアロンの添付ファイル」機能をテストしています。
curl の --data-urlencode 機能を使用して作成リクエストを送信しようとしていますが、半分しか機能しません。添付ファイルを作成して取得することはできますが、Content-Type フィールドが間違っているため、画像が正しく表示されません。
より正確に言うと、CouchDB は、投稿されたのと同じ Content-Type を使用して添付ファイルを返すことで機能するようです (これは完全に賢明な IMO です)。私の問題は、curl が正しいコードを送信しないことです。詳細は次のとおりです。
したがって、この質問の短いバージョンは次のとおりです。cURL を取得して正しい Content-Type を送信するにはどうすればよいですか?
編集:
私の他の間違いは --data-urlencode を使用することでした。それを機能させるには、Dale が提案した -H オプションと一緒に --data binary @filename を使用する必要があります。
unit-testing - PylonsでのCouchdbモデルのユニットテスト
デフォルトのパイロンのインストールを考えると、CouchDBモデルの単体テストのベストプラクティスで利用できる例はありますか?
couchdb - CouchDBビューへのパラメーターとしての複数のキー範囲
根本的な問題-私のドキュメントに「カテゴリ」とタイムスタンプがあるとしましょう。過去2時間以内のタイムスタンプを持つ「foo」カテゴリのすべてのドキュメントが必要な場合は、簡単です。
次に、次のようにクエリします
問題は、過去2時間以内にfooまたはbarのカテゴリに何かが必要な場合に発生します。時間を気にしない場合は、キーコレクションを介してキーで直接プルすることができます。残念ながら、範囲にはそのようなオプションはありません。
その間に私がやったことは、タイムスタンプを2時間のブロックに丸めてから、クエリを多重化することです。
動作しますが、(ブロックサイズとの関係で)かなりの時間を戻したい場合は面倒になります。
キーに似た、複数のstartKey / endKeyペアをビューに送信する方法はありますか:キー用に投稿できる[]配列?
couchdb - CouchDB の include_docs = true と比較して、出力にドキュメントを含める
emit(key, doc)
を実行すると、インデックスの構築にかかる時間が長くなるという言及に出くわしました(またはその効果の何か)。
emit(key, null)
それに何かメリットはありますか? また、常にand thenを実行しない理由はありますinclude_docs = true
か?
couchdb - ビューのクエリ時に CouchDB が終了する
アクセスする/mydatabase/_design/assets/_view/all
と、次のエラーが表示されます。
"{"error":"EXIT","reason":"{function_clause,\n [{couch_httpd,handle_db_request,\n [{mochiweb_request, ..."
これは私のビュードキュメントです:
ここで何が欠けていますか?
couchdb - CouchDB の複数のタグ
複数のタグ検索を CouchDB に実装する方法はありますか? それぞれに複数のタグが付いたドキュメント (投稿) があります。任意のタグ セットでタグ付けされた投稿を見つける必要があります。どうすればいいのですか?もちろん、ビューを複数回呼び出してタグのドキュメントを取得し、それをアプリで整理することもできますが、CouchDB ビューランドで同じことを実現する方法があるかどうかを知りたかったのです。
couchdb - 複数の開発者が CouchDB を互いに同期させている
今後の Web 開発プロジェクトで CouchDB を使用することを検討しています。
アプリケーションをローカルで実行しているさまざまな開発者間で CouchDB ドキュメント リポジトリの同期を維持する最善の方法は何ですか?
例: 開発者 A が Couch で新しいビューまたはデザイン ドキュメントを作成するか、単にフィールドを既存のビューに追加するとします。また、そのフィールドが CouchDB ビューにあることを期待するクライアント側コードもチェックインします。開発者 B がやって来て、最新のソース コードに更新し、開発者 A のクライアント側の変更を引き出します。開発者 B は、クライアント側コードに付随する Couch の変更をどのように取得しますか?
典型的な RDBMS では、これは一連の SQL ファイルまたはデータベースの移行を SCM システムにチェックすることによって達成されます。開発者 B はコードを更新した後、新しい SQL または移行スクリプトを実行してデータベース スキーマをアップグレードします。
おそらく Couch には、デザイン ドキュメントとビュー定義をエクスポート/インポートして、それらを SCM システムにチェックインする方法がありますか? おそらく、RDBMS バックグラウンドの洗脳をプログラム解除する必要があるだけです。
couchdb - RDBMS のバックグラウンド担当者に最も適した Key-Value ストアはどれですか?
すべての Key-Value ストアの中で明確な勝者はありますか? Cassandra、MongoDB、CouchDB? それらはすべて、いくつかの中心的なガイドラインに従っていますか? または、API を定義する際に独自の発言権を持っています。
特に、キー値ストアを初めて使用する RDBMS の熟練者の観点から、この質問をしています。このフィールドの理解/使用法を最もよく理解するには、どれに従う必要がありますか?
RDMS については、利用可能なすべての DB (Oracle、SQL Server など) がテーブル、インデックス、外部キーなどのすべての成果物を持っているという彼らの理論から知っています。これらの唯一の違いは、効率、セキュリティ、機能です。
これらのドキュメント中心のデータベースの普遍的な理論について知り、これらすべての DB (Mongo、Couch など) が持つ最小限の成果物を知るにはどうすればよいですか?
javascript - XML をエクスポートするための Javascript ライブラリ
現在、ドキュメントをJSONとして保存するためにcouchdbを使用しています。私のクライアントの 1 つは、XML を取得する必要があります (今のところ)。javascriptオブジェクト(またはjson文字列)を取り、有効なxmlをエクスポートできる優れたjavascriptライブラリを知っている人はいますか?
ありがとう!
php - PHPでの分散システムの構造
私はそれを理想的な解決策を見つけるのに苦労している問題を抱えています。それをよりよく説明するために、ここで私のシナリオを公開します。
複数のクライアントから注文を受け取るサーバーがあります。各クライアントは、指定された間隔で実行する必要がある一連の定期的なタスクを送信します。たとえば、クライアントAは、2009年12月31日から2010年12月31日まで1分ごとに実行する必要があるタスクAAを送信します。したがって、私の計算が正しければ、年間で約525 600の操作になります。クライアントとタスク が増えると、サーバーにこれらすべてのタスクを処理させることは不可能になるため、ワーカーマシンのアイデアを思いつきました。サーバーはPHPで開発されます。
ワーカーマシンは 、自宅や職場でホストする通常の安価なWindowsベースのコンピューターであり、各ワーカーには、停電を回避するための専用インターネット接続(動的IPを使用)とUPSがあります。また、各ワーカーはWebサービス呼び出しを介して約30秒ごとにサーバーにクエリを実行し、次の保留中のジョブをフェッチして処理します。ジョブが完了すると、ワーカーは出力をサーバーに送信し、新しいジョブなどを無限に要求します。システムを拡張する必要がある場合は、新しいワーカーを設定するだけで、すべてがシームレスに実行されます。ワーカークライアントはPHPまたはPythonで開発されます。
クライアントはいつでもサーバーにログオンして、注文したタスクのステータスを確認できるはずです。
ここで、注意が必要な部分が始まります。
- 何らかの理由でサーバーがダウンした場合、すでに処理されたタスクを再構築できなければなりません。
- ワーカーはクライアント固有ではありません。1人のワーカーが任意の数のクライアントのジョブを処理する必要があります。
一般的なデータベース設計と使用するテクノロジーについて疑問があります。
当初、私はいくつかのSQLiteデータベースを使用し、それらすべてをサーバー上で結合することを考えていましたが、クライアントごとにグループ化してジョブレポートを生成する方法がわかりません。
memcached、CouchDB、Hadoopなどのテクノロジーを実際に使用したことはありませんが、これらのいずれかが私の問題に適しているかどうかを知りたいのですが、そうである場合は、初心者にどちらをお勧めしますか?私のような「分散コンピューティング」(またはこれは並列ですか?)。ワーカーには動的IPがあることに注意してください。
前に言ったように、一般的なデータベース設計にも問題があります。これは、特定のR(D)DBMSをまだ選択していないこともありますが、私が選択したDBMSに依存しない問題が1つあります。キューイングシステムへ...特定のジョブに対するすべての絶対タイムスタンプを事前に計算し、タイムスタンプのセットが大きい場合は、それらを実行して昇順で完了としてフラグを立てる必要があります。または、タイムスタンプモジュラス60 = =0->実行"。この「賢い」システムの問題は、一部のワーカーが過負荷状態になっている間、何もしないで待機している可能性があるため、一部のジョブが正常に実行されないことです。何を指示してるんですか?
PS:この質問のタイトルとタグが私の問題と私がやろうとしていることを適切に反映しているかどうかはわかりません。そうでない場合は、それに応じて編集してください。
ご入力いただきありがとうございます。
@timdev:
- 入力は非常に小さいJSONエンコード文字列になり、出力もJSONエンコード文字列になりますが、少し大きくなります(1〜5 KBのオーダー)。
- 出力はWebから利用可能ないくつかのリソースを使用して計算されるため、主なボトルネックはおそらく帯域幅です。R(D)DBMSによっては、データベースへの書き込みも1つになる場合があります。