比较Mongo查询中的UUID字段

时间:2018-08-23 14:30:26

标签: mongodb mongodb-query

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

我能够轻松比较 string 字段,该字段类似于以下命令:

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

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

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

2 个答案:

答案 0 :(得分:3)

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

li.text

答案 1 :(得分:0)

首先我不明白为什么要使用$ where。它有一些缺点,不能使用索引,不能应用于嵌套字段等。请参见下面的链接[https://docs.mongodb.com/manual/reference/operator/query/where/]

您可以搜索uuid: db.T.find({“ foo”:UUID(“ 4415999c-53f3-48b3-be17-65af08c86980”)});