我正在尝试使用 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 获取集合大小的其他方法,或者一个好的库来清理要插入到命令中的字符串?