問題タブ [pouchdb]
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.
couchdb - ポーチ DB : データベースのサイズ
CouchDB の同じドキュメントに添付ファイルとして最大 2500 枚の画像を保存しています。これらのイメージはハード ドライブで約 15 MB を占め、結果の CouchDB は約 17 MB になります。
このドキュメントを PouchDB 経由でクライアントにプッシュすると、結果のデータベースが 40 MB を超えていることがわかりました。次の手順に従っていくつかのテストを行いました。
X 画像の添付ファイルを CouchDB ドキュメントにアップロードします。
コンパクトなCouchDB
クライアントのキャッシュを完全にクリアする
クライアントをリロードします (私のアプリでは、リロード時にデータを複製します)。
結果は次のとおりです。
したがって、次のようです。
PouchDB は、約 2K の制御データを各添付ファイルに追加します。
この制御データは、添付ファイルが追加されると増加します。(1.6K -> 2.3K -> 2.6K -> 2.8K...)
イメージには、CouchDB と PouchDB の両方で content_type:image/png があります。これにより、base64として保存できないことがわかりました。私は正しいですか?
誰もこれを以前に見たことがありますか?誰もそれを回避できましたか?iOS の 50MB のスペース制限内にアプリを収めようとする場合、これは大きな問題です。
編集
先に進み、pouchDB と元のファイルのいくつかの画像のサイズを確認しました。
ファイル 1: 元のサイズ = 7.4K / PouchDB のサイズ = 10.2K
ファイル 2: 元のサイズ = 5.1K / PouchDB のサイズ = 6.8K
したがって、添付ファイルを PouchDB に保存するときのサイズの増加は、制御データ (少なくとも関連性はありません) によるものではなく、バイナリ ファイルがブラウザーの IndexedDB に保存される方法によるものだと思います (これらの計算には Chrome を使用しています)。
では、この PouchDB でのバイナリ サイズの増加を回避するために、何か追加で行う必要があることはありますか?
data-synchronization - ライブと同期: false
スタート ガイドの実行中のコピーを持っています。CouchDB サーバー (couchappy.com) と完全に同期します。ここまでは順調ですね。
ユーザー アクション (つまり、ユーザーがボタンを押す) でのみ同期を行う必要があります。そこで、マークアップにボタンを追加し、クリック イベントを、入門ガイドで提供されているものと同じ "sync()" 関数に結び付けました。最後に、2 つの「ライブ」オプションを「true」から「false」に変更しました。
クライアント、サーバー、またはどこでも値を変更するかどうかに関係なく、ボタンをクリックすると同期関数が呼び出され、replicate.to と replica.from の両方でエラーが発生します。PouchDB の基本的な概念が欠けているに違いありません。「ライブ」ではなくレプリケーションを機能させる方法を誰かが理解するのを手伝ってくれますか?
前もって感謝します。
php - Couchdb からユーザー固有のデータを返す
背景: 私は mysql データベースを持っており、これを couchdb に移動します。そのデータベースには、いくつかのテーブル、「書籍」、および「ユーザー」があります。ログインフォームを介してWebアプリケーションにログインし、現在、ユーザーをログインさせ、そのユーザーのusersテーブルにphpセッションを書き込むphpスクリプトにユーザー名とパスワードを投稿しています。ここで、ユーザーが書籍をリクエストすると、a) ユーザーに対して php セッションが有効であることを確認し、ログインしているユーザー ID を使用して、ユーザーが閲覧できる書籍を取得します。
質問: この並べ替えのユーザー固有のレコード クエリを、couchdb でどのように複製しますか? 私は、couchdb の全体的なポイントは、http: //somesite.com/couchdb/getBooks/ と言うことができることであり、その db エンドポイントが本を返すことだと仮定しています。
最後にセッションIDを渡す必要があるのでしょうか?http://somesite.com/couchdb/getBooks/?s=123123しかし、どこでセッションを取得できますか? うーん。
これについて話している方向性や記事は素晴らしいでしょう。
javascript - 工場のAngularおよびPouch DB
アプリケーションの開始時に javascript ファイル内から、pouchdb クライアント データベースをロードしようとしていますが、データベースが作成されません。デバッガーにコンソール エラーはありません。デバッグしようとすると、匿名関数を終了し、さらに関数にステップインできないため、以下の行で失敗するようです。
ここで失敗します--> angular.module('app').factory(serviceId, [ 'pouchdb', createclientdb]);
なぜ私が間違っているのでしょうか?
最新のエラーにより、キャッチされない例外が生成されます。
以下のサービスも行っています。助言がありますか?
javascript - PouchDB のエラー: TypeError: angular.factory は関数ではありません
AngularJS で PouchDB を使用する方法を理解しようとしています。私はこれらの指示に従おうとしていますhttps://github.com/wspringer/angular-pouchdb
ファクトリやサービスを作成するための構文を理解するのに問題があると思います。「データベースとの対話」のセクションまで取得します
app.js
「db.put」を追加すると、ブラウザのコンソールに表示されるメッセージは次のとおりです。