【发布时间】:2021-06-20 14:25:36
【问题描述】:
我有一个用 C# 编写的应用程序,其中数据库是 MongoDB。 Id 对象是 C# Guid,因此 DB 中的 _id 字段如下所示:
"_id": {
"$binary": {
"base64": "tZqfm0KNMUi1GGfCkQQosw==",
"subType": "03"
}
}
并且该应用正在使用常规 Guid ("9b9f9ab5-8d42-4831-b518-67c2910428b3")
现在,我想添加按部分 id 搜索的功能 - 如果我搜索“67c2910428b3”,我想找到具有相应 id 的对象。
如何添加过滤器\查询来做到这一点?
我不能使用 BsonRegex,因为 db 中的字段没有“转换” - 它永远不会得到 Guid-id。
“简单”的解决方案是在 MongoDB 中添加另一个字段,并将 Guid 作为字符串,这样我就可以对其进行搜索 - 但这似乎是多余的,因为 id 已经存在。
【问题讨论】:
-
部分匹配是否总是在 UUID 的开头?
-
不,它可以是它的任何部分。