java操做mongodb之select(通常查询)

一:环境搭建

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


二:验证mongoTemplate.find()

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




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

    写法:
.net


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


    修改写法
blog

            

    结果:
get



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

        写法:
it

                    

    结果:
io


    恰好验证了,到指定表去查询。可是在第一种状况,第一种写法,它并无获取到这样的结果,因此能够推断,若是没有加collectionName,则去Entity.class对应的collection去查询。好比Order.class,对应order collection,其余collection无论。
class

    

    修改写法
环境搭建

        

    结果:

        


    推断:

            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条数。