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

Node.js-猫鼬-检查集合是否存在

郁景龙
2023-03-14
问题内容

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

我知道如何检查集合是否存在的方式是通过查询system.namespaces集合。我可以看到3种可行的html" target="_blank">方法。

  1. 找到一种system.namespaces使用猫鼬查询的方法(也许定义一个与数据库中的模式匹配的模式)。
  2. 从猫鼬获取一些底层的node-mongodb-native对象并手动执行查询。无论如何,这是我想学习的方法。
  3. 使用node-mongodb-native的单独实例(或某些其他驱动程序)执行查询

Number 3是最不优雅的数字,也是我要避免的数字,我不想加载该驱动程序的另一个实例,也不想在mongoose已经创建一个实例时创建一个新的连接。

1写完这个后,我将尝试数字。我刚刚检查了一下system.namespaces,该架构看起来非常简单

我仍然想听听一些意见。

谢谢!


问题答案:

选项2可能是最干净的。假设您已经使用打开了一个Connection名为Mongoose的对象,则可以通过访问本地mongo
对象。从那里您可以打电话给应该提供您所寻找的东西:conn``mongoose.createConnection``Db``conn.dbcollectionNames

conn.db.collectionNames(function (err, names) {
    // names contains an array of objects that contain the collection names
});

您还可以将集合名称作为参数传递,collectionNames以将结果过滤为所需的内容。

猫鼬4.x更新

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

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


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

  • 问题内容: 我有以下问题: 我正在将Java驱动程序用于MongoDB 3。 在版本2中,可以执行DB.collectionExists(name)来检查所选数据库中是否存在一个集合。 在版本3中,从DB切换到MongoDatabase,此方法不再存在。 如何查找数据库中是否存在集合?我试图使用listCollectionNames()遍历集合,但这似乎效果很差。 谢谢你的帮助 问题答案: 你是对

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

  • 问题内容: 如何检查 文件 的存在? 在模块的文档中,有方法的说明。但是,据我了解,它只检查目录的存在。而且我需要检查 文件 ! 如何才能做到这一点? 问题答案: 为什么不尝试打开文件? 无论如何,经过一分钟的搜索,请尝试以下操作: 对于Node.js v0.12.x及更高版本 双方并已弃用 *编辑: 已更改: 至: 林特抱怨双重等于不是三次等于。 使用fs.stat:

  • 我正在Node上做一个基于开源微服务的项目。js。 有些微服务非常薄,只与MongoDB交互,所以我没有在那里使用Sails,而是更喜欢直接使用Mongoose。因此,我为需要在mongo中持久化的每个对象实现了mongoose模式。 我还将在其他一些微服务中使用Sails.js,因此我必须为我想要持久化的对象实现Waterline类型的模式 问题是模式的重复,我觉得这没用。 我希望在所有服务中使

  • 问题内容: 我是Node.js和Heroku的新手,我构建了一个使用node.js并从mongodb实例检索一些数据的小应用程序。我设置了整个程序,但是我的问题是我认为mongodb的语法很简单。 我需要在启动应用程序时知道我的收藏夹中是否包含任何东西,如果没有,则不进行初始化。我尝试调用collection.count(),但返回未定义。 我尝试这样做 任何帮助表示赞赏。 问题答案: 任何访问数