[英]How to call db.Collection.stats() from Mongo java driver
[英]How to use AND & OR condition in JAVA mongo db array collection
我有以下格式的Java Mongo Collection。
{
"field1": ["f1","f2"],
"field2": ["g1","g2"],
"Ans": a1
}
{
"field1": ["f4","f5"],
"field2": ["g5","g6"],
"Ans": a2
}
{
"field1": ["f1","f6"],
"field2": ["g2","g3"],
"Ans": a3
}
我需要分别在field1和field2中执行“ OR”条件
从结果中,我需要确定条件以选择行。
例如:f1,f5,g2,g3是我得到的输入。
我需要在字段1中使用f1,f5做或处理,所以我将获得所有三行
我需要在g,g3的字段2中进行操作或处理,所以我将获得第一行和第三行
同时做和两个条件我只需要获得第一和第三行。
我正在使用以下代码
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);
类似的OR查询字段2和And查询其结果
我知道它很长。 谁能比这知道简单的代码?
(我使用Mongo shell JavaScript语法进行响应,因为它比Java冗长一些。等效的Java应该易于生成。)
db.collection.find({$and:[
{field1:{$in:["f1","f5"]}},
{field2:{$in:["g1","g3"]}}
]});
$in
运算符基本上执行“或”运算,因此$and
的第一个操作数基本上等效于{$or:[{field1:"f1"},{field1:"f5"}]}
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.