如何使用及;JAVA mongo db数组集合中的OR条件
我有以下格式的JavaMongo集合如何使用及;JAVA mongo db数组集合中的OR条件,java,mongodb,conditional-operator,Java,Mongodb,Conditional Operator,我有以下格式的JavaMongo集合 { "field1": ["f1","f2"], "field2": ["g1","g2"], "Ans": a1 } { "field1": ["f4","f5"], "field2": ["g5","g6"], "Ans": a2 } { "field1": ["f1","f6"], "field2": ["g2","g3"], "
{
"field1": ["f1","f2"],
"field2": ["g1","g2"],
"Ans": a1
}
{
"field1": ["f4","f5"],
"field2": ["g5","g6"],
"Ans": a2
}
{
"field1": ["f1","f6"],
"field2": ["g2","g3"],
"Ans": a3
}
我需要分别在字段1和字段2中执行“或”条件从结果中,我需要执行和条件选择行。
例如:f1、f5、g2、g3是我得到的输入。
我需要在字段1中使用f1、f5执行or条件,以便获得所有三行
我需要用g,g3在字段2中执行or条件,这样我将得到第一行和第三行
在执行这两项操作时,我只需要获得第1行和第3行。
下面是我使用的代码
DBObject query1 = new BasicDBObject("field1","f1");
DBObject query2 = new BasicDBObject("field1","f5");
BasicDBList condtionalOperator = new BasicDBList();
condtionalOperator.add(query1);
condtionalOperator.add(query2);
DBObject query = new BasicDBObject("$or", condtionalOperator);
字段2的相似或查询及其结果的相似或查询我知道它很长。有人知道比这更简单的代码吗?(我使用Mongo shell JavaScript语法进行响应,因为它比Java要简单一些。等效的Java应该可以直接生成。)
$in
运算符基本上执行OR运算,因此$and
的第一个操作数基本上等价于{$OR:[{field1:f1},{field1:f5}]}
db.collection.find({$and:[
{field1:{$in:["f1","f5"]}},
{field2:{$in:["g1","g3"]}}
]});