問題タブ [couchdb-nano]

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.

0 投票する
1 に答える
2142 参照

node.js - CouchDB の結果を値で並べ替える

私は CouchDB (および一般的な NoSQL) の初心者であり、簡単な Node.js + Express + nano アプリを作成してその感触をつかんでいます。これは、'title' と 'author' の 2 つのフィールドを持つ単純な書籍のコレクションです。

文書例:

縮小機能:

CouchDB はキーでソートし、'descending=true' クエリ パラメータをサポートしているため、タイトルのソート順を切り替えるフィルタを UI に実装するのは簡単でした。これが結果セットのキーです。UI は次のとおりです。

昇順または降順でタイトルを並べ替えるためのリンク付きの書籍のリスト

しかし、私は著者フィールドに対してこれを行う方法について完全に途方に暮れています。

私はこの質問を見てきました。これは、投稿者が数値のreduce値でソートするのに役立ちました。また、リストを使用してreduce値でソートするブログ投稿も読みましたが、これを行う方法は見たことがありませんreduce のない文字列値。

0 投票する
2 に答える
1200 参照

node.js - ドキュメントのリストについて Cloudant (node.js モジュールを使用) データベースにクエリを実行しますか?

次のようなドキュメントを含むデータベースを考えてみましょう。

これで、ユーザー名のリストが表示されます。つまり、次のとおりです。

そして、私は彼らの電子メールのリストを返します:

この問題を効率的に解決するにはどうすればよいですか?

Node.js を使用して Cloudant (nano ライブラリーに基づく) データベースに照会する。

0 投票する
1 に答える
461 参照

node.js - nanoを使用してcouchDBにセッションを渡す

セッションを正しく CouchDB に渡すことができません。これが私のコードです:

しかし、電話をかけると、常に次のメッセージが表示されます。

0 投票する
1 に答える
90 参照

mapreduce - 入力キーを使用して CouchDB で区別する

次のようなドキュメントが与えられた場合:

カテゴリを渡してキーを入力し、個別の行を取得できるように"cat1""type1"たい.["line1", "line2"]"cat2""type1"["line2", "line3"]

キーを渡さない場合は簡単です:

地図

減らす

私は group: true を使用していますが、キーを渡すときにこれを処理する方法に困惑しています。

PS、ノードとナノを使用しているため、クエリは次のようになります。

0 投票する
0 に答える
176 参照

javascript - NodeJS は、couchDB から nano を選択して入力します

複数のドキュメントを含む複数のcouchDBデータベースがあります。nodeJSとcouchDBのnanoクライアントを使用して、3つ以上のhtml selectsにcouchDBのデータを入力しようとしています。データベース内のすべてのドキュメントを取得して、それらを選択に挿入しようとしています。これを達成する方法についてのアイデアはありますか?できれば単一のリクエストで。

LE: list メソッドを使用して nano ドキュメントを利用しようとしています: https://github.com/dscape/nano#dblistparams-callback

問題は js が非同期であることです。ページがレンダリングされる前にリストで必要なすべての情報を収集できません。少なくとも私はこれを達成する方法を知りません。それが私がやろうとしていることです。必要なデータベースが 1 つだけであれば問題ありませんが、複数のデータベースにクエリを実行する必要があります。

複数のコールバックを実行するか、nodejs のイベント パッケージを使用することを考えましたが、コードは絶対的な悪夢になるでしょう。

0 投票する
2 に答える
222 参照

node.js - BluebirdはNodeJSで約束しますが、それには到達しません

私は、CouchDbで使用されるnanoライブラリを使用して、NodeJでbluebirdの約束を使用しようとしています。私はpromisfyを使用し、見たときに新しい非同期メソッドを取得します。次の例では、nano.db.listAsync呼び出しは正常に機能しますが、.then または .catch には到達しません。

ここで何が問題なのですか?

0 投票する
3 に答える
1333 参照

database - カウチデータベースの更新設計ドキュメント

nano次のスクリプトを使用して、couchdb に接続する nodejs アプリケーションがあります。

このスクリプトはサーバーが起動するたびに実行されるため、サーバーが (再) 起動するたびにデータベース 'foo' を作成しようとし、データベースが既に存在する場合は黙って失敗します。

この方法は実際にはアプリケーション レベルでデータベースを維持しており、新しいデータベースを追加するときに手動でデータベースを作成する必要がないため、このアイデアがとても気に入っています。

このアプローチをさらに一歩進めて、アプリケーション レベルから設計ドキュメントを維持しようとしました。

明らかに、これは設計ドキュメントが存在しない場合にのみ挿入されます。しかし、設計ドキュメントを更新し、それを更新したい場合はどうすればよいでしょうか?

私は試した:

ここでの問題は、サーバーが再起動するたびに設計ドキュメントが更新されることです(たとえば、再起動するたびに新しい _rev を取得します)。

今...私の質問:)

1: これは、CouchDB をデータベースと設計でブートストラップするための悪いアプローチですか? 展開プロセスの一部として、いくつかの移行手順を検討する必要がありますか?

2: 基本的にすべての展開とサーバーの再起動のたびに、設計ドキュメントが多くの_rev を取得することは問題ですか? ドキュメント自体は変わっていないのに?もしそうなら、ドキュメントが変更された場合にのみドキュメントを更新する方法はありますか? (アプリケーションで_revを手動で値に設定することを考えましたが、それが良いアイデアかどうかは非常にわかりません)。

0 投票する
1 に答える
104 参照

couchdb - Nanodb レプリケーション フィルター

「サンプル」という名前のデータベースがあります

次のような _design doc があります。

そして、次のようなサンプルデータ:

私のノードサーバーでは、 nano db を使用し、 filter でレプリケーション機能を使用してみます。次のようになります。

この操作の応答は次のとおりです。「json キーがありません: newView」

このフィルターを複製するにはどうすればよいですか?

ありがとう