MongoDB_Java连接mongo 使用Java多条件查询mongo数据

本文介绍了一种使用Java进行多条件查询MongoDB的方法。通过示例代码展示了如何设置查询条件,包括年龄大于5且小于14的具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mongo shell中的查询语句是这样的..

db.user.find({"age":{"$gt":5,"$lt":14}})
我们用Java连接mongo来实现.

mongo库中的数据


代码

package com.java.module.mongo.mongo_test_1;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;

/**
 * Java多条件查询mongo
 */
public class JavaManyConditionsQuery {

    public static void main(String[] args) {

        try {

            MongoClient mongoClient = new MongoClient("192.168.125.125", 27017);
            DB db = mongoClient.getDB("test");
            DBCollection dbCollection = db.getCollection("user");

            //将两个并联的查询条件放入一个里面.
            DBObject dbQuery = new BasicDBObject();
            dbQuery.put("$gt", 5);
            dbQuery.put("$lt", 14);

            DBObject query = new BasicDBObject("age",dbQuery);

            DBCursor dbCursor = dbCollection.find(query);

            while (dbCursor.hasNext()) {
                System.out.println(dbCursor.next());
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
查询结果




Java使用 MongoDB 进行条件查询可以使用 `com.mongodb.client.MongoCollection` 的 `find` 方法结合 `com.mongodb.client.model.Filters` 类提供的过滤条件来实现。 以下是一个简单的例子,假设我们有一个名为 `users` 的集合,其中包含了 `name` `age` 两个字段: ```java import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.model.Sorts; import org.bson.Document; import java.util.Arrays; public class MongoDBExample { public static void main(String[] args) { // 创建 MongoDB 客户端 MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017"); // 获取数据MongoDatabase database = mongoClient.getDatabase("test"); // 获取集合 MongoCollection<Document> collection = database.getCollection("users"); // 查询所有文档 collection.find().forEach((Consumer<Document>) document -> System.out.println(document.toJson())); // 按条件查询文档 Document query = new Document(); query.append("age", new Document("$gte", 18)); // 年龄大于等于 18 岁 query.append("name", new Document("$in", Arrays.asList("Alice", "Bob"))); // 名字为 Alice 或 Bob collection.find(query).forEach((Consumer<Document>) document -> System.out.println(document.toJson())); } } ``` 上述代码中,我们使用 `Filters` 类提供的 `$gte` `$in` 条件,查询年龄大于等于 18 岁且名字为 Alice 或 Bob 的文档。 更多的过滤条件可以参考 MongoDB 的官方文档:https://docs.mongodb.com/manual/reference/operator/query/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值