問題タブ [couchbase-view]
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.
java - 時間に基づく Couchbase クエリ
タイムスタンプに基づいてデータを取り戻す方法を見つけようとしています。基本的に、タイムスタンプ フィールドに基づいて 100 個のドキュメントをクエリしたいと考えています。100 個のドキュメントは、渡したタイムスタンプよりも古いはずです。また、タイムスタンプを渡すことができるリフレッシュを作成し、100 個の新しいドキュメントを取得したいと考えています。ここでは明らかにロジックが異なりますが、Couchbase でこれを実現する方法を理解するのは困難です。
これが私がこれまでに持っているものです:
私の見解では、ご覧のとおり、日付だけでなく可視性フィールドもチェックしているため、複雑なキーも使用する必要があります。ビューの縮小部分には何もありません。
Java クライアントを使用してクエリを実行しています。テスト用に制限を 2 に設定しています。ここで奇妙なのは、何かを取得するには setDescending を false にする必要があることです。また、どの日付を渡しても、常に結果が得られます。期待される動作として私が望むのは、日付を渡し、その日付と同じかそれより古い結果のみを取得することです。
編集:
基本的に私が Couchbase に求めているのは、Facebook や Pintrest などのモバイル アプリに似ています。ユーザーが更新したときの特定のタイムスタンプで、より新しいものを取得したいと考えています。ユーザーがスクロールしているとき、特定の日付を過ぎて次のグループを取得したい。
** アップデート **
これで解決しましたが、さらに調査を進めます。ComplexKey は、日付配列を [2013,11,8,20,0,0] のままにするのではなく、"[2013,11,8,20,0,0]" に変換しています。さらに調査する予定です。当面の回避策は、ComplexKey を使用するのではなく、独自の複雑なキーを作成し、それを単なるキーとして startKey に渡すことでした。
php - PHP SDK から設定した後、Couchbase ビューが更新されない
私は主にデータを取得するためのビューで作業するアプリケーションに取り組んでいます。
私がやろうとしているのは、ドキュメントを保存し、リダイレクトして、保存されたドキュメントが利用可能かどうかを確認することです(これは、ドキュメントキーではなく別の値を探しているため、ビューを介して行われます)。
私は何を使用していますか?
Debian Wheezy 上の PHP(5.4.21)、Couchbase(2.1.1)、および Couchbase(1.1) 用の PHP SDK。
それで、何が起こっているのですか?
API 関数を使用してドキュメントを保存し、少なくとも を含むAPI 関数をset($id, $document)
使用してビューの更新をトリガーし、新しく追加されたドキュメントをチェックする/または単に表示したい別のページにリダイレクトします。
しかし、新しく追加されたドキュメントが常に表示されるとは限らないか、存在するかどうかの私のチェックに常に合格するとは限りません。view($designDocument, $viewName, $options)
$options
'stale'=>false
私がより詳細に使用しているコードに従ってください:
コードに示されているように、stale パラメーターを false に設定して、インデックスが確実に更新されるようにします。
しかし、それは機能していないようです。
この質問を書く前に、Couchbase フォーラムのスレッド、Stackoverflow への投稿、Couchbase の PHP SDK のドキュメント、および Couchbase の一般的なドキュメントを調べました。そのため、 staleがどのように機能するか、どのような制限
がある
かを理解していると思います。
ドキュメントがメモリ内になく、ディスクに書き込まれている (または既に書き込まれている) 場合にのみ、stale が機能するという私の仮定が間違っている場合は、お気軽に修正してください。
私がやろうとしていることがうまくいかないので、私はさまざまなことを試しました.
たとえば、 のデフォルトの動作が である場合stale
、update_after
インデックスの更新を 2 回トリガーすることで問題が解決すると考えました。
まあ、そうではありませんでした。
その他特筆すべき点は、
で文書を保存した直後にset
、別々に、必死になって組み合わせて使用しました。トリックもしなかった。
ここで間違っているのは、PHP SDK が何らかの形でstale=false
パラメーターを通過しておらず、 keyDurabilityが想定どおりに機能していないということです。新しく作成されたドキュメントをチェックするときにも渡すのでstale=false
、もちろん両方 (トリガーとチェック) が同じバケットとビューで機能します。
または、気付かないうちに何かひどく間違ったことをしています。
何が起こっているのか理解できないので、誰かが私を正しい方向に向けて、できれば何がうまくいかないのか説明してくれたらうれしいです. keyDurability
私の理解によれば、stale
少なくともすべてがうまくいくはずです。
couchbase - Couchbase - 個別の値を返す
次の形式の小さな JSON ドキュメントのリストがあります。
私のマップ機能はこれです:
その結果、重複を含むすべてのイベントのリストを取得します。結果セットを個別の値のみに減らすにはどうすればよいですか?
ありがとうございました
couchbase - Couchbase での複数の属性のソートとフィルタリング
いくつかの異なる属性を持つドキュメントがあります。私のアプリでは、doc 属性の 1 つをフィルタリングし、他の属性でソートする可能性があります。
すなわち
{
"accountId": "qa32176148",
"id": "122230310111",
"rtSessionId": "qa321761484294973207",
"sessionStartTime": 1387705538426,
"visitorLastUpdateTime": 1387705717094,
"countryCode": ": US",
"state": " NY",
"city": "New York",
"country": "United States",
"organization": "Google",
"ipAddress": "216.239.39.99",
"agentNickName": "john"
}
- これらのフィールドごとにフィルタリングしたいのですが、フィールドごとにビューを作成する必要がありますか?
- (例として) 州ごとにファイリングし、都市ごとに並べ替えることはできますか?
couchbase - Couchbase Custom Reduce の動作に一貫性がない
カウチベース バージョン 2.0.1 - エンタープライズ エディション (build-170) および Java クライアント バージョン 1.2.2
を使用しています ユーザーの最後のアクティビティを取得するためのカスタムの reduce 関数があります
Java クライアントからの応答に一貫性がありません 正しい応答が得られる時点でほとんどの場合、有効なキーに対して null 値を取得します。Stale.FALSE でさえ役に立ちません!!
ビュー内のレコード数は約 100 万件で、クエリの結果セットは約 1,000 個のキーと値のペアです。ここで何が問題なのかわかりません..誰かが助けてくれれば幸いです。
リデュース機能は以下のとおりです。
クエリを表示:
couchbase - カウチベースのreduce関数内のjson値にアクセスするには?
Couchbaseの私のreduce関数[テスト用]:
結果はこちら
「closed_auctions」があるはずなのに、values[0].doctype
それが返されるようにdoctypeの値を取得しようとすると、reduce内で個別の値を取得したいと思います。null
何が問題ですか?reduce関数内で個々の値(フィールド値を意味します)を取得するにはどうすればよいですか。
couchbase - ブール値パラメーターを使用したソファベース ビューの使用に関する問題
ブールキーでcouchbaseマップ関数を使用すると問題が発生します。
ブール値パラメーターを使用してマップ関数を作成しましたが、値「false」をキーとして渡してこの関数を使用しようとすると、関数は何も返しません
サンプル ドキュメント:
マップ機能:
http://localhost:8092/default/_design/tickets/_view/by_presentation_and_isSold?key=[false,"presentation_24e53b3a-db43-4d98-8499-3e8f3628a9c6"]
結果:
couchbase - カウチベースのビューを使用してドキュメントを取得する方法
ソファベースからドキュメントを取得する必要があります。
私が同じために使用しているMap関数に続いて-
リデュース機能はありません。また、ドキュメントを取得するための私のJavaコードは次のとおりです-
そして、私がcouchbaseに持っているデータは、キーが「122」で、値が「true」です。しかし、何らかの理由で、ViewResponse に行がありません。誰でも助けてもらえますか?
couchbase - マルチノード Couchbase クラスタのビューの説明
私はCouchbaseを初めて使用します。
2 ノードの Couchbase 環境があり、バケットに 20 個のドキュメント (アプリケーションの記事) が保存されています。ノード 1 に物理的に存在する 5 つの記事があり、ノード 1 をシャットダウンしたときにアプリケーションのリストに 15 の記事しかないため、他の記事はノード 2 に存在していると思います。
アプリケーションに「postdate 順」リストがあり、次のようなビューから結果を取得します。...emit(doc.postdate)...
さて、なんらかの理由で、私のアプリケーションのリストは常に正しくなく、一部の記事が正しい位置にありません (投稿日順ではありません)。私の唯一の推測は、ノード 1 には 5 つの記事のインデックスがあり、ノード 2 には他の 15 のインデックスがあり、どちらも独自のインデックスで postdate フィールドによって正しく並べ替えられますが、アプリケーション (.NET クライアント ライブラリを使用) がノード 1 から 5 を取得し、ノード 2 から 15 を取得した後、「連結」するだけです。 ' 2 つのリストを完全なリストにする 20,これが、アプリケーションの記事リストに間違った順序が表示された理由です。
私の推測が間違っていること、Couchbase サーバーについての私の誤解、および間違った順序付きリストを取得したその他の理由を教えてください。ソファベースのアーキテクチャの観点からの詳細な情報は、非常に高く評価されます.
よろしくお願いします。
couchbase - Couchbase : 複数のフィールドの表示またはクエリ (OR)
id=A OR name=A のようなビューを Couchbase で作成することは可能ですか?
ありがとう。
乾杯、ヤン