我很难将以下嵌套的mongodb查询与$and
和$or
转换为java / groovy
db.personSync.find({
$and:[
{$or:[
{ "name" : { "$regex" : "(?i)^test1" , "$options" : "i"}},
{ "name" : { "$regex" : "(?i)^dev" , "$options" : "i"}}
]},
{ "email" : { "$regex" : "(?i)^test" , "$options" : "i"}}
]}
);
]}
);
我能够为$或部分编写代码,如下所示
def mongoCritera = new ArrayList<BasicDBObject>();
mongoCritera.add('name', java.util.regex.Pattern.compile('(?i)^test1`'))
mongoCritera.add('name', java.util.regex.Pattern.compile('(?i)^dev`'))
def query = new BasicDBObject("\$or", mongoCritera);
collection.find(query);
但是我无法容纳$和逻辑,有人可以帮助我吗?
答案 0 :(得分:0)
根据我的理解,你想编写一个查询提取 name应该从(test1或dev)开始不区分大小写,电子邮件从test开始(也不区分大小写)?如果是的话试试这个
db.personSync.find({$和:[{名称:{&#34; $正则表达式&#34;:&#34; ^ [测试| dev的]&#34;&#34; $选项&# 34;:&#34;我&#34;}},{电子邮件:{&#34; $正则表达式&#34;:&#34; ^测试1&#34;&#34; $选择&#34;:&# 34; I&#34;}}]})
答案 1 :(得分:0)
hdfs dfs -put <FILE_IN_VM_FS> <FILE_IN_HDFS>
答案 2 :(得分:0)
System.out.println("Enter " + regular + " for regular service...");
char service = /* ... Whatever ... */ ;
if (service == regular) {
// ... Whatever.
}