这有点棘手..你如何在 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/