📜  java mongodb find 多个条件 - Java (1)

📅  最后修改于: 2023-12-03 14:42:15.375000             🧑  作者: Mango

Java MongoDB Find 多个条件

在使用MongoDB数据库时,有时需要同时匹配多个条件才能获取所需的文档数据。在Java中,使用MongoDB驱动程序可以实现这一目的。

前置条件
  • 已经安装好Java MongoDB驱动程序
  • 已经连接好MongoDB数据库
实现方法

Java MongoDB驱动程序中提供了多种方法来实现对多个条件的匹配查询。以下是一些常见的方法:

使用BasicDBObject类进行查询

可以使用BasicDBObject类创建一个查询对象,该对象将包含多个条件。可以使用“$and”运算符将这些条件结合起来。

import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;

BasicDBObject query = new BasicDBObject();
query.put("field1", value1);
query.put("field2", value2);

DBCollection collection = db.getCollection("collection_name");
DBCursor cursor = collection.find(query);
使用DBObject类进行查询

与BasicDBObject类类似,DBObject类也可以用来创建查询对象。可以使用“put()”方法向DBObject对象中添加多个条件,然后将其作为参数传递给“find()”方法。

import com.mongodb.DBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.QueryBuilder;

DBObject query = QueryBuilder.start("field1").is(value1).and("field2").is(value2).get();

DBCollection collection = db.getCollection("collection_name");
DBCursor cursor = collection.find(query);
使用Criteria类进行查询

在Java MongoDB驱动程序中,还可以使用Criteria类创建查询条件。Criteria类提供了多种方法来创建条件,可以使用“andOperator()”方法将多个条件结合起来。

import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

Criteria criteria1 = Criteria.where("field1").is(value1);
Criteria criteria2 = Criteria.where("field2").is(value2);
Criteria criteria = new Criteria().andOperator(criteria1, criteria2);

Query query = new Query(criteria);

MongoTemplate mongoTemplate = new MongoTemplate(new MongoClient("localhost"), "database_name");
List<Document> documents = mongoTemplate.find(query, Document.class, "collection_name");

以上方法都可以实现多个条件的查询。可以根据实际需求选择合适的方法来实现。