mongodb - 比较 Mongo 查询中的 UUID 字段
问题描述
我需要编写一个 MongoDB 查询,我可以在其中比较 UUID 字段的值。
我能够轻松地比较像这样的命令的字符串字段:
db.T.find({ $where: function() {return this.foo === this.bar}})
但是,在比较 UUID 时,相同的功能似乎不起作用。$where 方法是否仅适用于字符串?如果是这样,我可以使用另一个命令来比较其他类型的字段吗?
更准确地说,我使用的是存储为“二进制 - UUID”类型的 Mongo UUID。
解决方案
如果需要在“$where”函数中使用 UUID,可以将 UUID 转换为字符串。例如,如果“foo”和“bar”字段是 UUID 对象:
db.T.find({ $where: function() {return this.foo.toString() === this.bar.toString()}})
推荐阅读
- r - 按名称条件删除列
- powershell - Powershell 结果在不应该分组的地方进行分组
- grails - 在 Grails JSON 视图中使用域方法
- hadoop - Hadoop 3.2 HDFS 客户端能否用于 Hadoop 2.x HDFS 节点?
- amazon-web-services - 提供基于 IP 的访问策略时,无法从我的 VPN 访问 AWS Elasticsearch
- sql - 选择 GROUP 中的所有记录,即使此时没有对应的数据
- javascript - 隐藏图像的左半部分并在图像悬停时显示左半部分
- python-3.x - 在 Scrapy 上使用 python 请求库
- python-3.x - 我需要将文件从 appdata/local 复制到 C 驱动器并在每次运行程序时覆盖它们
- python - PyGame Zero 中的重复键检测