当前位置: 首页 > 面试题库 >

MongoDB 3 Java检查集合是否存在

周良弼
2023-03-14
问题内容

我有以下问题:

我正在将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方法。这样就可以访问 不推荐使用*
collectionExists方法。当然, 我不建议使用第二种方法 ,因为如上所述, 它已被弃用
*** __

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



 类似资料:
  • 问题内容: 有没有一种方法可以检查nodestore的firestore中是否存在子集合? 目前,我正在使用文档,但是我需要检查文档中是否存在子类以便写入一些数据。 问题答案: 就在这里。您可以使用docs.length来知道子集合是否存在。 我制作了一个样本来指导您,希望对您有所帮助。

  • 本文向大家介绍JavaScript 检查集合中是否存在值,包括了JavaScript 检查集合中是否存在值的使用技巧和注意事项,需要的朋友参考一下 示例 要检查集合中是否存在给定值,请使用方法:.has() true如果someVal出现在集合中,将返回,false否则返回。

  • 问题内容: 我需要使用猫鼬插入一些数据,但是集合的名称由用户在插入时提供,因此我首先必须检查集合是否存在。 我知道如何检查集合是否存在的方式是通过查询集合。我可以看到3种可行的方法。 找到一种使用猫鼬查询的方法(也许定义一个与数据库中的模式匹配的模式)。 从猫鼬获取一些底层的node-mongodb-native对象并手动执行查询。无论如何,这是我想学习的方法。 使用node-mongodb-na

  • 问题内容: 我要实现以下功能: 如何检查向量元素类型? 请注意, 向量可能为空,因此我无法检查第一个元素是“ instanceof”整数还是String … 编辑: 好吧,我脑子里有个念头,我不知道它是否会起作用 我可以按以下方式实现checkType函数: 是否可以检查T是否为整数?! 提前致谢 问题答案: *由于 类型擦除, *泛型类型参数 在运行时不可恢复(某些特殊情况除外)。这意味着在运行

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。