Java 是否可以同时使用$all和$regex?

Java 是否可以同时使用$all和$regex?,java,regex,mongodb,Java,Regex,Mongodb,我有一个有趣的问题,它有点和我有关。我要检查的字段有多个值。例如,假设我想查找一个字段name匹配“bob”和“barker”的文档。起初,我想这样做: db.TVHosts.find({ "name": { "$all" : [ { "$regex": ".*bob.*" }, { "$regex" : ".*barker.*" } ] } }) db.TVHosts.find({ "name": { "$all" : [ /.*bob.*/, /.*barker.*/ ] } })

我有一个有趣的问题,它有点和我有关。我要检查的字段有多个值。例如,假设我想查找一个字段
name
匹配“bob”和“barker”的文档。起初,我想这样做:

db.TVHosts.find({ "name": { "$all" : 
   [ { "$regex": ".*bob.*" }, { "$regex" : ".*barker.*" } ] } })
db.TVHosts.find({ "name": { "$all" : [ /.*bob.*/, /.*barker.*/ ] } })
通过命令行执行此操作的方法是:

db.TVHosts.find({ "name": { "$all" : 
   [ { "$regex": ".*bob.*" }, { "$regex" : ".*barker.*" } ] } })
db.TVHosts.find({ "name": { "$all" : [ /.*bob.*/, /.*barker.*/ ] } })
但这在Java中似乎不起作用。有没有我遗漏的关键文档

编辑:我通过MongoDB Java驱动程序使用MongoDB。

如图所示,要用Java向MongoDB发送正则表达式,需要使用
模式。从
Java.util.Regex.Pattern
编译