noSQL データベースを使用していますが、特定の理由により、クエリで等値フィルタリングを使用できません。
例えば
select all from database where id = 10
許可されていません
ただし、不等式フィルタリングは許可されています
例えば
select all from database where id > 1
私の ID は UNIQUE 文字列 (メール) であり、等式フィルタリングを使用する必要があるため、不等式ステートメントを等式ステートメントに変換することを考えました (たとえば、where id = 10 は Where id > 9 AND < 11 と記述できます)。
ID が数字の場合、次のようなコードを使用してキーを取得します。
function(id)
{
//assuming no id can be 0 and no id can be larger than 2^53-1. This will return the row with id = 10
var result = sendToDatabaseQuery('SELECT * FROM database where id > ' + (id-1) + ' AND ' id < ' (i+1)');
}
数値ではこれを行うのは非常に簡単ですが、文字列ではより困難であることがわかりました. mysuperfakeemail.gmail.com のようなメールがある場合、前と次の辞書式文字列を取得するにはどうすればよいですか (それぞれmysuperfakeemail.gmail.co lと mysuperfakeemail.gmail.co nであると想定しています)。このタイプの関数の確立されたアルゴリズムは既にありますか? これをUTF-8文字のnodejsサーバーで書いています。