首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MongoDB 3JAVA检查集合是否存在

MongoDB 3JAVA检查集合是否存在
EN

Stack Overflow用户
提问于 2015-08-10 06:00:32
回答 5查看 23.9K关注 0票数 18

我有以下问题:

我使用的是MongoDB 3的Java驱动程序。

在版本2中,可以使用DB.collectionExists(名称)来检查所选数据库中是否存在集合。

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

如何确定一个集合是否存在于数据库中?我试图用listCollectionNames()遍历集合,但似乎效率很低。

谢谢你的帮忙

EN

回答 5

Stack Overflow用户

发布于 2017-03-10 06:38:32

一种替代方法是使用MongoIterable.into函数将它们添加到可以调用contains("collectionName")的目标ArrayList中。

代码语言:javascript
复制
boolean collectionExists = client.getDatabase("dbName").listCollectionNames()
    .into(new ArrayList<String>()).contains("collectionName")
票数 20
EN

Stack Overflow用户

发布于 2016-06-22 09:54:25

当我试图找到一种有效的方法来检查集合是否存在时,我偶然发现了这篇文章。由于我的数据库中有超过50k个集合,因此使用listCollectionNames()方法的效率非常低。

我所做的是使用db.collection.count()方法,如果它返回一个非零值,那么我会将其视为一个不存在的集合。当然,这并不是百分之百正确的,因为可以有一个没有条目的集合,这种方法会将其视为不存在的集合。但是对于MongoDB中的大多数场景,只有当集合至少有一个文档时,它才有意义。以下是示例代码。

代码语言:javascript
复制
public boolean isCollectionExists(DB db, String collectionName) 
{

    DBCollection table = db.getCollection(collectionName);
    return (table.count()>0)?true:false;
}
票数 1
EN

Stack Overflow用户

发布于 2018-04-22 06:27:27

对于任何仍在寻找的人:假设您有名为"db“的MongoDatabase实例

代码语言:javascript
复制
try {
        db.createCollection("myCol");
    } catch (MongoCommandException e) {
        System.err.println("Collection Exists");
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31909247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档