我的mongo中有一个BinData字段,我需要用部分信息查找它。
让我们说我的bindata看起来像这样:
{ "_id" : ObjectId("5480356518e91efd34e9b5f9"), "test" : BinData(0,"dGVzdA==") }
如果我执行此查询,我会得到结果:
> db.test.find({"test" : BinData(0,"dGVzdA==")})
{ "_id" : ObjectId("5480356518e91efd34e9b5f9"), "test" : BinData(0,"dGVzdA==") }
但是我想只用二进制对象的一部分来找到它 可能吗?
谢谢!
答案 0 :(得分:1)
“partial”是一个模糊的术语 - 如果你在大海捞针的任何一点上搜索一个连续的二进制数据块(针),我认为你需要一个非常不同的解决方案,也许基于二进制数据的后缀树/后缀数组。
如果要查找具有特定字节的启动的二进制数据,您可能需要考虑将数据存储为十六进制或base64编码的字符串,并使用带根的正则表达式来使用索引。但这充满了自己的危险(填充,结尾等),令人难以置信的丑陋......
是否有办法以MongoDB理解的方式存储二进制数据?那可能更容易......