我有一个mongodb集合,它一直在存储LUUID(遗留UUID,BinData子类型0x03),存储这些值的应用程序最近进行了更改,开始存储BinData子类型0x04的标准UUID。
我正在寻找一种执行find查询的方法,该查询将返回具有BinData子类型0x03UUID的所有记录。
我阅读了https://docs.mongodb.com/manual/reference/operator/query/type/,$type表达式的粒度似乎只允许查询"binData",而不允许通过binData子类型查询。
我试图做一些类似db.getCollection('myCollection').find({field: { $type: "binData3" }})的事情,这当然是无效的,因为binData3不是一个有效的类型别名,只有binData才是。
我怎样才能做到这一点?
发布于 2021-03-02 08:55:50
MongoDB 比较/排序顺序分三个步骤对二进制数据进行比较:
由于遗留UUID和当前UUID的长度相同,所以可以从类型3中的空UUID搜索到类型4中的空UUID,如下所示:
db.collection.find({ field: {
$gte: BinData(3,"AAAAAAAAAAAAAAAAAA=="),
$lt: UUID("00000000-0000-0000-0000-000000000000")
}})https://stackoverflow.com/questions/66426027
复制相似问题