我有以下问题:
我正在将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
方法。这样就可以访问 不推荐使用*
的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中的注意事项。