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
,而不是MongoDatabase
从MongoClient
调用getDB
方法。这样就可以访问 ,因为如上所述, 它已被弃用 。 *** __
结果,您需要反复进行迭代listCollectionNames
。
以上是 MongoDB 3 Java检查集合是否存在 的全部内容, 来源链接: utcz.com/qa/425676.html