你是对的.看起来好像3.0.x版本的MongoDB驱动程序没有端口直接“存在集合”?方法到MongoDatabase.
正如你已经提到的,一个选项是让您遍历listCollectionNames()的结果.虽然这似乎无效,但它与DB.collectionExists(String)方法的实现非常相似.以下代码片段从mongo-java-driver source中的DB.java类复制:
public boolean collectionExists(final String collectionName) {
Set collectionNames = getCollectionNames();
for (final String name : collectionNames) {
if (name.equalsIgnoreCase(collectionName)) {
return true;
}
}
return false;
}
您也可以通过调用getDB方法从MongoClient获取DB而不是MongoDatabase.这使您可以访问已弃用的collectionExists方法.当然,我不推荐这种第二种方法,因为如上所述,它是不推荐的.
因此,您可以通过listCollectionNames方法进行迭代.