MongoDB 3 Java检查集合是否存在

我有以下问题:

我正在将Java驱动程序用于MongoDB 3。

在版本2中,可以执行DB.collectionExists(name)来检查所选数据库中是否存在一个集合。

在版本3中,从DB切换到MongoDatabase,此方法不再存在。

如何查找数据库中是否存在集合?我试图使用listCollectionNames()遍历集合,但这似乎效果很差。

谢谢你的帮助

回答:

你是对的。似乎MongoDB驱动程序的3.0.x版本没有通过直接的“ 是否存在集合? ”方法移植到MongoDatabase

正如您已经提到的,您可以选择的一种方法是遍历的结果listCollectionNames()。尽管这似乎无效,但它与该方法的实现 非常

相似DB.collectionExists(String)。下面的代码段是从mongo-java-

driver源中的DB.java类复制的:

public boolean collectionExists(final String collectionName) {

Set<String> collectionNames = getCollectionNames();

for (final String name : collectionNames) {

if (name.equalsIgnoreCase(collectionName)) {

return true;

}

}

return false;

}

你也可以得到DB,而不是MongoDatabaseMongoClient调用getDB方法。这样就可以访问 ,因为如上所述, 它已被弃用*** __

结果,您需要反复进行迭代listCollectionNames

以上是 MongoDB 3 Java检查集合是否存在 的全部内容, 来源链接: utcz.com/qa/425676.html

回到顶部