Node.js-Monose-检查集合是否存在?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (84)

我需要使用monose插入一些数据,但是集合的名称是由用户在插入时提供的,所以我首先必须检查集合是否存在。

我知道如何检查集合是否存在的方法是通过查询system.namespaces收藏。我可以看到三种可能的方法来做到这一点。

  1. 想办法查询system.namespaces使用monose(可能定义一个与db中的模式匹配的模式)。
  2. 从monose获取一些底层节点-MongoDB-原生对象,并手动执行查询。无论如何,这是我想学习如何做的事情。
  3. 使用节点的单独实例-MongoDB-本机(或其他驱动程序)执行查询
提问于
用户回答回答于

在MongoDB 4.x使用的MongoDB本机驱动程序的2.x版本中,collectionNames已被listCollections它接受一个过滤器并返回一个游标,因此您可以这样做:

mongoose.connection.db.listCollections({name: 'mycollectionname'})
    .next(function(err, collinfo) {
        if (collinfo) {
            // The collection exists
        }
    });
用户回答回答于

在集合列表中查找集合

public function CollectionExists($collectionName)
    {
        $mongo = new Mongo();
        $collectionArr = $mongo->selectDB('yourrec')->listCollections();
        if (in_array($collectionName, $collectionArr)) {
            return true;
        }
        return false;
    }

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励