Cloudantからドキュメントを取得するためのさまざまなオプションがあります。ビューは、ドキュメントのクエリ、並べ替え、集約を可能にする基盤技術です。あなたの特定の例では、最新のドキュメントを最大(または最小)にしたいと思うように思えます。ビューでこれを行うことができます。また、Cloudantでは単にインデックスを作成することもできます。
create_date
と呼ばれる日付フィールドがあるとします。
{
"index": {
"fields": [
"create_date"
]
},
"type": "json"
}
これは、ビューを作成し、あなたはそれが「デザインドキュメント」の下にリスト表示されます。Cloudantでは、(次の「ご利用可能なインデックス」にある編集をクリックし、クエリに行く)ので、同様にインデックスを作成することができます。ダッシュボードでそのビューを次のように照会することができます。
{
"selector": {
"create_date": {
"$gt": 0
}
},
"fields": [
"_id",
"_rev"
],
"sort": [
{
"create_date": "desc"
}
],
"limit": 1
}
メモ、私は1つのドキュメントに制限しています。これにより、Cloudantに追加された最新のドキュメントが返されます。 Cloudantに追加された最も古い文書を検索するには、ソートを"create_date": "asc"
に変更します。
/db/_find/
へのHTTP POST呼び出しを使用して、これをダッシュボードの外で実行できます。
https://docs.cloudant.com/cloudant_query.html#finding-documents-using-an-index
UPDATE:詳細については、こちらのリンクを参照してください使用して、テキストインデックスとブックマーク
上記のアプローチは、クエリを毎回各ドキュメントを削除し、再実行しようとしている前提としています。昇順ソートを使用した場合は、常にドキュメントを順番に処理しますが、降順ソートを使用した場合は、新しいドキュメントが挿入されるときに処理できます。
ブックマークを使用する方法もあります(下記のコメントのOPで提案されているように)。まず、Cloudantでテキストインデックスを作成します。
{
"index": {},
"type": "text"
}
上記と同じクエリを実行します。あなたは順番に書類を横断するブックマークを渡すことができ、その後のクエリで
{
"docs":[{
"_id":"aa279ae2835f51d8ea13ee3e6ae3a210",
"_rev":"1-e90f3814f49b3e89158f8d2337de89cb"}
],
"bookmark": "g1AAAAD4eJzLYWBgYM5gTmHQSElKzi9KdUhJMtRLytVNSczRLS5JzEtJLEox1EvOyS9NScwr0ctLLckB6mBKUgCSSfb____PAvPdHK_uzd_TwMCQKJ1Fuml5LECSYQGQAhq4H2HiAWEHoIkKaCaaE23iAYiJ9xEmHhY7AHZjFgAnFk_X"
}
:結果は今、次のようなbookmarks
フィールドが含まれますブックマークについて
{
"selector": {
"create_date": {
"$gt": 0
}
},
"fields": [
"_id",
"_rev"
],
"sort": [
{
"create_date": "desc"
}
],
"limit": 1,
"bookmark" : "g1AAAAD4eJzLYWBgYM5gTmHQSElKzi9KdUhJMtRLytVNSczRLS5JzEtJLEox1EvOyS9NScwr0ctLLckB6mBKUgCSSfb____PAvPdHK_uzd_TwMCQKJ1Fuml5LECSYQGQAhq4H2HiAWEHoIkKaCaaE23iAYiJ9xEmHhY7AHZjFgAnFk_X"
}
詳しい情報はここで見つけることができます:
https://docs.cloudant.com/cloudant_query.html#working-with-indexes
以下の回答を参照してください。このようにすることを妨げる他の制約がある場合は、あなたの質問を更新してください。私は一見嬉しいです。 – markwatsonatx