Spring Mongotemplate 如何获取集合统计信息

时间:2021-06-29 15:00:46

标签: spring mongodb spring-data-mongodb mongotemplate commandinjection

我正在尝试使用 Spring 的 MongoTemplate 获取集合大小,但似乎没有很好地映射到 MongoDB 文档中的阶段 $collState

我发现获取集合大小的唯一方法似乎是这样的:

    BasicDBObject command = new BasicDBObject();
    command.append("collStats", customerID);
    Document commandResult = mongoTemplate.getDb().runCommand(command);
    double collectionSize = (double) commandResult.getInteger("size") / 1024; // Display in kb

集合名称基于通过 OIDC 不记名令牌获取的客户 ID。但我认为这可能会打开一个攻击向量来使用命令注入。

有谁知道在不打开命令注入的情况下使用 mongotemplate 获取集合大小的其他方法,或者一个好的库来清理要插入到命令中的字符串?

0 个答案:

没有答案