java - 如何对 mongodb ObjectId 字段进行正则表达式查询

标签 java regex mongodb

这有点棘手..你如何在 ObjectId 字段上进行正则表达式查询?

我正在使用 java api,所以这就是我目前所拥有的

BasicDBObject q = new BasicDBObject()
q.put(field, Pattern.compile(value, Pattern.CASE_INSENSITIVE));

这适用于任何常规字段。但似乎不适用于 ObjectId 字段。我认为这是因为我无法将 ObjectId 与字符串进行比较?而且我不能完全将部分 ID 或正则表达式放入新的 ObjectId 中。它只会抛出一个错误。

对此有什么想法吗?我正在尝试为用户提供一种输入部分 ID 的方法,并能够取回具有该模式的所有文档。

提前致谢!

最佳答案

据我所知,ObjectId 是 MongoDB 中的自有类型,其行为不像字符串。尽管 MongoDB 中还有其他不同于字符串的类型,如数组等,它们可以通过正则表达式模式进行搜索,但这对于 ObjectId 似乎是不可能的。要实现像您这样的 ID 搜索,我可能会定义一个自己的索引 ID 字段,其中包含一个 ID 作为简单的字符串和冷落的 ObjectId。

关于java - 如何对 mongodb ObjectId 字段进行正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5612975/

相关文章:

javascript - 如何编写一个 javascript 正则表达式来用 html 超链接替换这种格式 [*](*) 的超链接?

node.js - MongoDB - 如何使用 Node.js 获取集合的大小?

java - 将大结果集转换为 json 的 mongodb java 驱动程序

mongodb - Mongo按实际上是数字的字符串值排序

java.security.InvalidKeyException : PBES2 AlgorithmParameters not available

regex - 通过 Google Sheets 正则表达式提取根域

java - 如何从适用于多个类类型的方法返回实际类型而不是对象类型?

javascript - 多个条件的单一正则表达式模式

java - 另一个 Guice + Jersey 错误 NoSuchMethodError

java - 自动化 Google App Engine 上传