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

回调函数的使用

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

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

    @Test
    public void testCallbackExec(){

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

        Assert.assertEquals(true,hasIndex);
    }

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

方法 描述
T execute (Class entityClass, CollectionCallback action) 为指定类的实体集合执行给定的CollectionCallback。
T execute (String collectionName, CollectionCallback action) 对给定名称的集合执行给定的CollectionCallback。
T execute (DbCallback action) 根据需要执行DbCallback转换任何异常。Spring Data MongoDB为2.2版本中引入的聚合框架提供了支持。
T execute (String collectionName, DbCallback action) 对给定名称的集合执行DbCallback,根据需要转换任何异常。

你可能感兴趣的:(MongoDB使用回调 - MongoDB从入门到删库)