MongoDB使用回调 - MongoDB从入门到删库

回调函数的使用

所有Spring模板类的一个常见设计特性是,所有功能都被路由到模板的一个执行回调方法中。因此,使用这些执行回调是访问MongoDB驱动程序的MongoDatabaseMongoCollection对象以执行在MongoTemplate上没有作为方法公开的不常见操作的首选方法。例如:

使用CollectionCallback返回关于索引的信息:

    @Test
    public void testCallbackExec(){

        boolean hasIndex = mongoOps.execute(Venue.class, new CollectionCallback<Boolean>() {
            @Nullable
            @Override
            public Boolean doInCollection(MongoCollection<org.bson.Document> collection) throws MongoException, DataAccessException {
                final ListIndexesIterable<org.bson.Document> indexes = collection.listIndexes();
                for (org.bson.Document document : indexes) {
                    if ("location".equals(document.get("name"))) {
                        return true;
                    }
                }
                return false;
            }
        });

        Assert.assertEquals(true,hasIndex);
    }

下面的列表描述了执行回调方法。

方法描述
<T> T execute (Class<?> entityClass, CollectionCallback<T> action)为指定类的实体集合执行给定的CollectionCallback。
<T> T execute (String collectionName, CollectionCallback<T> action)对给定名称的集合执行给定的CollectionCallback。
<T> T execute (DbCallback<T> action)根据需要执行DbCallback转换任何异常。Spring Data MongoDB为2.2版本中引入的聚合框架提供了支持。
<T> T execute (String collectionName, DbCallback<T> action)对给定名称的集合执行DbCallback,根据需要转换任何异常。
    原文作者:DreamsonMa
    原文地址: https://www.jianshu.com/p/e81f3729bb53
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞