Я работаю с набором данных, состоящим из вероятностных зашифрованных элементов, неотличимых от случайных выборок. Таким образом, последовательные шифрования одного и того же номера приводят к разным зашифрованным текстам. Однако они все еще сравнимы с помощью специальной функции, которая применяет алгоритмы, такие как SHA256, для сравнения двух зашифрованных текстов.Пользовательский индексный компаратор в MongoDB
Я хочу добавить список описанных зашифрованных текстов в базу данных MongoDB и проиндексировать ее с использованием древовидной структуры (то есть: AVL). Я не могу просто применить стандартную индексацию базы данных, потому что, как описано, записи должны быть сопоставимы с использованием специальной функции.
Пример: Предположим, что у меня есть база данных дб и коллекцию с составленную по следующему типу документа:
{
"_id":ObjectId,
"r":string
}
Кроме того, пусть F (целое, строка, строка) следующая функция :
F(h,l,r) = (SHA256(l | r) + h) % 3
где оператор | является стандартной функцией конкатенации.
Я хочу, чтобы выполнить следующий запрос эффективным способом, например, в коллекции с некоторой подходящей индексации:
db.c.find({ F(h,l,r) :{ $eq: 0 } })
для ч и л выбраны произвольно, но не константы. I.e .: Предположим, что я хочу найти все записи, которые удовлетворяют F (h1, l1, r) для некоторой пары (h1, l1). Позже, в другой момент, я хочу сделать то же самое, но используя (h2, l2) такие, что h1! = H2 и l1! = L2. h и l могут принимать любое значение в наборе целых чисел.
Как я могу это сделать?
Большой вопрос!Не могли бы вы добавить пример кода, чтобы сделать это более понятным? – Shawyeok
Shawyeok сделано. Проверь это. –