我正在处理由随机样本难以区分的概率加密元素组成的数据集。这样,相同编号的顺序加密会产生不同的密文。然而,这些仍然可以通过使用SHA256等算法比较两个密文的特殊功能进行比较。MongoDB中的自定义索引比较器
我想用基于树的结构(即:AVL)所描述的密文的方式来加入到MongoDB数据库并建立索引。我不能简单地应用数据库的默认索引,因为如上所述,记录必须使用特殊函数进行比较。
一个例子:假设我有一个数据库分贝和由下面的文档类型组成集合Ç:
{
"_id":ObjectId,
"r":string
}
此外,让F(INT,字符串,字符串)是以下功能:
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完成。核实。 –