我正在尝试使用 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 不记名令牌获取的 customerID。但我认为这可能会打开一个攻击向量来使用命令注入。
任何人都知道使用 mongotemplate 获取集合大小的其他方法,而无需打开命令注入,或者一个好的库来清理要插入命令的字符串?