node-redアプリケーションで "cloudant"データベースを使用しています。ノード赤色アプリケーションを使用してすべてのデータを保存します。私は雲のドキュメント "_id"フィールドのためのランダム()文字列を使用しています、ドキュメントの一部は "_id"フィールドとしてシステム生成 "_id"フィールドが含まれています。 javscriptの日付obejct、つまり「new Date()。getTime()」を使用している「Unixタイムスタンプ」を格納する「createdAt」フィールドを持つすべてのレコード。クラウドDbソート機能がUNIXタイムスタンプを使用して期待どおりに動作しない
私は、次のcloudantDbエンドポイント
で{ "selector": { "createdAt": { "$gt": 0 }, "$or": [{ "task_id": { "$in": ["1_0"] } }, { "page_id": 1 }], "table": "details" }, "sort": [{ "createdAt": "desc" }], "limit": 20 , "bookmark": null}
すなわち
{ "ddoc": "_design/629170abb04bb25e13d65322e59141dcc5d16317", "name": "customIndex", "type": "json", "def": { "fields": [{ "createdAt": "asc" }, { "page_id": "asc" }, { "task_id": "asc" }, { "_id": "asc" }] }
と結果を得るために、次のクエリを使用して、すなわち、以下の設計文書を使用して経由CloudantDBソートインデックスを作成
https://30175cba-a69e-4ff0-9a79-788abcf0f585-bluemix.cloudant.com/master_table/_find
私が行方不明です何をしませんが、それは私がcloudantDbソートでクエリを見つけ実装するには次のリンクを、次の午前なるといつか任意の並べ替え
せずにランダムなレコードを返す必要がありますようcloudantDBは、レコードをソートしません。インデックスすなわち
https://developer.ibm.com/clouddataservices/cloudant-query-new/
ヘルプや提案のいずれかの種類が理解されます。
ありがとうございます。
ああ。 'new Date()。getTime()'は実際に数値を返します。私はあなたのデータベースにアクセスすることができないので、これは私がテストすることは難しいです。これをもう一度見てから、あなたは手動でその設計文書を作成し、その文書に対してCloudant Queryセレクターを実行しようとしている可能性があると思います。残念ながら、それは動作しません。 Cloudant Queryセレクタを実行するには、Cloudant Queryを使用してインデックスを作成する必要があります。 https://console.bluemix.net/docs/services/Cloudant/api/cloudant_query.html#creating-an-indexを参照してください。うまくいけばそれは問題ですか? – brobes
ありがとう@brobesあなたの提案。私は既にセレクタクエリのCloudantDb Indexを作成しました。CloudantDbは上記のクエリを実行しているときに警告またはエラーを返しませんでした。インデックスがない場合、CloudantDbは間違いなく警告またはエラーを返すと思います。 –
そうだとすれば、おそらくCouchDBのビューの照合ルールに慣れる必要がありますか?インデックスがソートされている順序を管理するので、おそらくそれは簡単ですか? http://docs.couchdb.org/en/2.1.1/ddocs/views/collation.html#collation-specification – brobes