首页 > 解决方案 > 比较 Mongo 查询中的 UUID 字段

问题描述

我需要编写一个 MongoDB 查询,我可以在其中比较 UUID 字段的值。

我能够轻松地比较像这样的命令的字符串字段:

db.T.find({ $where: function() {return this.foo === this.bar}})

但是,在比较 UUID 时,相同的功能似乎不起作用。$where 方法是否仅适用于字符串?如果是这样,我可以使用另一个命令来比较其他类型的字段吗?

更准确地说,我使用的是存储为“二进制 - UUID”类型的 Mongo UUID。

标签: mongodbmongodb-query

解决方案


如果需要在“$where”函数中使用 UUID,可以将 UUID 转换为字符串。例如,如果“foo”和“bar”字段是 UUID 对象:

db.T.find({ $where: function() {return this.foo.toString() === this.bar.toString()}})

推荐阅读