java操作mongodb之select(一般查询)

一:环境搭建

               环境搭建代码(SSM+mongdb)点击打开链接


二:验证mongoTemplate.find()

      两个collection,分别是customer和order,其中order中有字段orderCode,customer中有一个document也有一个orderCode字段。下面是两个collection情况。




    第一种情况:find(query, Entity.class)

    写法:


    结论:没有给出collectionName进行查询,Order实体中也有属性,orderCode。并且colletion是customer中有orderCode。没有查询到任何数据。


    修改写法

            

    结果:



    第二种情况:find(query, Entity.class,collectionName)

        写法:

                    

    结果:


    刚好验证了,到指定表去查询。但是在第一种情况,第一种写法,它并没有获取到这样的结果,所以可以推断,如果没有加collectionName,则去Entity.class对应的collection去查询。比如Order.class,对应order collection,其他collection不管。

    

    修改写法

        

    结果:

        


    推断:

            1,mongoTemplate.find(query, Entity.class)  ,默认去colletion为Entity进行查询。并把结果封装为Entitiy.查询满足条件的所有document.

         2,mongoTemplate.find(query,Entity.class, collectionName);到指定的colletion中查询,并把结果封装为Entity.查询满足条件的所有document.

        3,mongoTemplate.findOne(query, Entity.class)对比mongoTemplate.find(query, Entity.class);可以猜测,他们唯一的差别是一个查询满足条件的一个 document,而另个是满足条件的所有。

         4,mongoTemplate.findOne(query, Entity.class, collectionName);到指定的collection中查询,并把结果封装为Entity,只要一个document.

         5,mongoTemplate.findById(query, Entity.class);通过id到默认collection为Entity进行查询,并把结果封装为Entity.

         6,  mongoTemplate.findById(query, Entity.class, collectionName);通过id到指定的collection中去查询.

         7,  mongoTemplate.findAll(Entity.class);推测,到默认collection为Entity进行查询,并封装为Entity,无条件的,查询到collection中所有,哪怕有上亿个document?

        8,  mongoTemplate.findAll(Entity.class,collectionName);推测,到指定collection为colletionName中查询,无条件,查询所有,并封装成Entity.如果检测到条件查询时,页面一个条件也没有,则直接调用这个方法,不过得配合分页,查询指定的document条数。






  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 聚合框架提供了一种数据处理方式,它能够对集合中的文档进行分组、筛选、投影、排序、限制以及多表关联等操作,从而生成新的文档集合。下面是几种 MongoDB 聚合查询方式的详解: 1. $match 查询 $match 查询通过筛选文档中的字段来过滤数据,类似于 SQL 中的 WHERE 子句。可以使用各种比较运算符、逻辑运算符和正则表达式等条件来实现高级查询。例如,以下代码将返回所有 age 大于等于 18 的文档: ``` db.collection.aggregate([ { $match : { age : { $gte : 18 } } } ]) ``` 2. $group 查询 $group 查询通过将文档分组来聚合数据。可以使用 $sum、$avg、$min、$max 等聚合运算符来计算每个分组的结果。例如,以下代码将返回每个国家的总人口数: ``` db.collection.aggregate([ { $group : { _id : "$country", population: { $sum : "$population" } } } ]) ``` 3. $project 查询 $project 查询用于投影文档中的字段,类似于 SQL 中的 SELECT 子句。可以使用 $addFields、$subtract、$multiply、$divide 等运算符来进行计算或添加新的字段。例如,以下代码将返回包含 name 和 age 字段的文档: ``` db.collection.aggregate([ { $project : { name : 1, age : 1 } } ]) ``` 4. $sort 查询 $sort 查询用于对文档进行排序,类似于 SQL 中的 ORDER BY 子句。可以使用 1 或 -1 来指定升序或降序排列。例如,以下代码将按 age 字段降序排列文档: ``` db.collection.aggregate([ { $sort : { age : -1 } } ]) ``` 以上是 MongoDB 聚合查询的几种方式,它们可以组合使用来实现更复杂的查询。在 Java 中,可以使用 MongoDBJava 驱动程序来进行聚合查询。具体的实现方式可以参考 MongoDB 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值