Java写mongodb查询语句。对orgcode多个模糊查询,对name筛选是2,3或者null值
时间: 2023-12-10 10:41:47 浏览: 28
可以使用Java驱动程序提供的QueryBuilder类来构建MongoDB查询语句。以下是一个示例:
```java
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Sorts;
import com.mongodb.client.model.Updates;
import org.bson.Document;
import static com.mongodb.client.model.Filters.*;
...
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("mycollection");
// 构建orgcode的多个模糊查询条件
List<Bson> orgcodeFilters = new ArrayList<>();
orgcodeFilters.add(regex("orgcode", "123.*"));
orgcodeFilters.add(regex("orgcode", "456.*"));
orgcodeFilters.add(regex("orgcode", "789.*"));
// 构建name的筛选条件
Bson nameFilter = or(eq("name", 2), eq("name", 3), eq("name", null));
// 构建完整的查询条件
Bson query = and(in("orgcode", orgcodeFilters), nameFilter);
// 执行查询
FindIterable<Document> results = collection.find(query);
// 遍历结果
for (Document doc : results) {
System.out.println(doc.toJson());
}
```
在这个示例中,我们首先创建一个`MongoClient`对象,然后获取一个指定数据库和集合的`MongoCollection`对象。接下来,我们构建了一个由多个模糊查询条件组成的列表,并使用`in`操作符将它们组合在一起。然后,我们使用`or`操作符将name的筛选条件组合在一起,并使用`and`操作符将所有条件组合在一起,得到完整的查询条件。最后,我们使用`find`方法执行查询,遍历结果并输出每个文档的JSON表示。