使用 mongoose 切换数据库

2023-11-27

您好,有没有办法用 mongoose 切换数据库? 我想我可以这样做:

mongoose.disconnect();
mongoose.connect('localhost',db);

但它不起作用我收到此错误:

Error: Trying to open unclosed connection.

不知道是不是因为是异步的


正如已经说过的,你可以使用useDb功能 :

示例代码:

async function myDbConnection() {

    const url = 'mongodb+srv://username:[email protected]/test?retryWrites=true&w=majority';

    try {
        await mongoose.connect(url, { useNewUrlParser: true });
        console.log('Connected Successfully')
        // Here from above url you've already got connected to test DB,
           So let's make a switch as needed.
        mongoose.connection.useDb('myDB'); // Switching happens here..
        /**
         * Do some DB transaction with mongoose models as by now models has already been registered to created DB connection
         */
    } catch (error) {
        console.log('Error connecting to DB ::', error);
    }
}

或者,如果您想创建一个全新的连接,那么您必须尝试mongoose.createConnection()。仅供参考,以防万一mongoDB您将使用的驱动程序::

mongodb.MongoClient.connect(mongourl, function(err, primaryDB) {
  // open another database over the same connection
  const secondaryDB = primaryDB.db(SECONDARY_DATABASE_NAME);

  // now you can use both `database` and `database2`
  ...
});

Ref : 猫鼬多个不同的连接, 猫鼬 useDb(), mongoDB驱动程序切换连接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 mongoose 切换数据库 的相关文章

  • Nodejs 在路由器页面中包含 socket.io

    我有一个 Express Node 应用程序 并且我试图通过不在 app js 中包含所有 socket io 内容来保持代码整洁 我不知道解决这个问题的最佳方法 这是我最初的想法 感觉不是最干净的 app js var express r
  • 如何与使用 child_process.spawn 创建的新创建的服务器交互

    我正在尝试为我的私人托管的 反恐精英全球攻势 服务器制作一个前端 当我点击运行服务器时 在前端 一切正常 服务器启动并记录到控制台 但是如何查看服务器IP地址 服务器中的玩家等信息呢 这是我到目前为止运行服务器的内容 router post
  • axios 在发送数据时给我将循环结构转换为 json 错误

    我的代码如下所示 axios post https api sandbox xyz com v1 order new JSON stringify request v1 order new nonce 123462 client order
  • Apollo 服务器:将参数传递给嵌套解析器

    我的 GraphQL 查询如下所示 p1 property someArgs some value id nestedField id moreNestedField id 在服务器端 我使用 Apollo Server 我有一个解析器pr
  • 从 Promise 块返回函数值

    我正在尝试编写一个函数 使用 WebdriverJS lib 来迭代元素列表 检查名称并构建与该名称对应的 xpath 定位器 我这里简化了xpath定位器 大家不用关注 我在这里面临的问题是 1 调用该函数返回未定义 据我了解 这是因为
  • 如何使用 chrome puppeteer 访问 ssl 证书内容

    我想使用 chrome puppeteer 访问 url 的证书详细信息 是否可以使用当前的 puppeteer API 来做到这一点 使用以下代码获取证书列表 结果无法直接读取 将每个条目存储在具有 pem 扩展名的文件中 BEGIN C
  • 如何在 Mongoose.js 查询中执行大于语法

    如何获得适用于此 Mongoose 查询的 大于 语法 var where where id req wine id where sameAs undefined where scoreTotal gt 0 THIS NEEDS TO SE
  • 显示服务器端运行的长进程的状态

    我正在基于 Node js 的 Web 应用程序中进行 CSV 导入 大多数给定的 CSV 文件都有数万条记录 并且需要几分钟的时间 因此 在导入完成之前 我想向用户显示 当前正在导入 消息 我想要创建的内容类似于 Github 的分叉屏幕
  • Node.js 中的 Zip 档案

    我想创建一个 zip 存档并将其解压缩到 node js 中 我找不到任何节点实现 node core 内置了 zip 功能 http nodejs org api zlib html http nodejs org api zlib ht
  • 与解构一起使用的Sinon存根函数

    我希望对我当前正在测试的文件中使用的函数进行存根 解构时需要此函数 如下所示 const theFunctionIWant require path to module 测试时 永远不会调用存根 而是继续调用实际函数 但是当我 正常 需要它
  • 从 HTML 表单发送数据到 Node.js 服务器

    我正在学习 Node js 我的服务器中有这个 var http require http var url require url http createServer function request response response w
  • 如何使用nodeJS SFTP客户端列出所有子目录?

    有趣的节点 JS ssh2 sftp client 我想列出给定路径中的所有目录及其子目录 let sftp new ssh2SftpClient console log sftp sftp connect host xx xxx xxx
  • nodejs gmail api不支持承诺

    Google 推荐使用承诺 https developers google com api client library javascript features promises 但它的代码示例没有 当我修改代码时 我正在努力使 gmail
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • Node.js:将 repl 挂接到远程节点服务器

    假设我有一个节点服务器在 mysite com 上运行 有没有办法设置该服务器以便我可以使用节点的repl api http nodejs org docs latest api repl html to securely从我的本地计算机连
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • 使用 Passport-jwt 授权 jwt 令牌时获取 401 未经授权的状态

    成功登录后 我获得了 jwt 令牌 现在要访问受限 api 我正在发送授权标头 但我总是收到 401 未经授权 我已经提到过这个使用 Passport jwt 验证节点 API https stackoverflow com q 35528
  • npm installexpress-generator 不安装express

    我正在遵循 MEAN 堆栈教程 该教程要求我安装 Express 我运行这个 npm install g express generator 这是我的结果 username username Inspiron 3521 npm instal
  • 我如何制作 spring websocket + node.js 客户端

    我怎样才能在node js中创建一个websocket stomp客户端 WebSocketStompClient 就像我在java中用这行代码做的那样 WebSocketStompClient stompClient new WebSoc
  • Node.js:从 s3 下载文件并将其解压缩为字符串

    我正在编写一个AWS Lambda函数 它需要从AWS S3下载文件 解压缩文件并以字符串形式返回内容 我正在尝试这个 function getObject key var params Bucket my bucket Key key r

随机推荐

  • 创建自定义 PSObject PowerShell 2.0

    是否可以创建一个自定义对象 PSObject 并在程序执行之前和之后定义其属性 我们不断向该对象添加值数组 For e g c c New Object PSObject c Add Member type NoteProperty nam
  • emacs 字符串插入矩形数字向量?

    如何使用 emacs string insert rectangle 操作将数字向量添加到一系列行中 例如 我的 emacs 缓冲区中有一堆文本条目的缩短版本 element01 8 1111111110110100001000000011
  • C++、OpenCV:调整大小时断言失败

    作为一名 C 初学者 我目前面临着一个我无法解决的问题 即使代码非常简单 我一直在寻找answers互联网上到处都是 但没有一个适用于我的问题 我目前正在 VS2013 下使用 OpenCV 2 4 8 用 C 编写基本的 SVM 我能够处
  • OpenSSL::SSL::SSLContext SNI servername_cb 不工作

    正如中所引用的OpenSSL X509 证书显示错误域名的证书 我需要使用 TLSv1 或更高版本and 服务器名称指示扩大 即使ssl version and servername cb通过设置SSLContext 我仍然收到错误的证书m
  • 动态创建一个继承自ActiveRecord的类?

    我希望能够动态创建继承自 ActiveRecord 的类 以便在 Rails 应用程序外部编写脚本 我被困在这样的事情上 require active record def create arec table name Class new
  • 如何在graphql和strapi中传递JSON对象

    当我手动编写突变查询 在 graphql 插件中 时 它正在工作 mutation createExam input data name myName desription ggg questions gf hello time 2 sub
  • Java Web 服务返回带有 > 和 < 而不是 > 和 < 的字符串

    我有一个返回字符串的 java web 服务 我正在创建这个 xml 字符串的主体DocumentBuilder and Document班级 当我查看返回的 XML 源 在浏览器窗口中看起来很好 而不是 时 它返回 lt and gt 围
  • Git 类似于 Hg 的 Bigfiles 扩展?

    我想要 git 中类似的东西Mercurial 的 Bigfiles 扩展 注 据我所知git 大文件 但这无关 基本上我想在我的 git 存储库中存储大型二进制文件 但我不想在进行克隆时获得大型二进制文件的每个版本 我只想在签出包含这些大
  • 使用 ReferenceEquals 的 IEqualityComparer

    有默认的吗IEqualityComparer
  • 可能有 ``a < b and not(a - b < 0)`` 带浮点数

    Is a lt b and not a b lt 0 由于浮点轮误差可能导致浮点吗 有例子吗 这个答案旨在作为对帕特里夏 沙纳汉已经给出的好答案的学究补充 这个答案涵盖了正常情况 在这里 我们担心的是您在实践中不太可能遇到的边缘情况 是的
  • “phpinfo():依赖系统的时区设置是不安全的......”[重复]

    这个问题在这里已经有答案了 在运行 Blue box FreeSwitch PBX 前端 的 php 安装脚本时 我收到有关时区故障的错误 然后我开始挖掘 我不确定此时发生了什么 但这是我所拥有的 我在 public html 目录中创建了
  • MS Access - 链接到另一个 Access 数据库中的查询

    如何链接来自另一个 MS Access 数据库的查询 我知道我可以轻松链接表格 但我不知道如何链接查询 该查询从许多我不想链接的表中获取数据 你可以这样做 SELECT RemoteQueryname FROM RemoteQuerynam
  • .NET WebClient.UploadValues 与 WebClient.UploadData

    我正在编写一个类库来在我控制之外的站点上执行操作 该网站正在接受表单帖子作为输入 谁能告诉我这两种方法除了上传数据的形式之外是否有区别 System Net WebClient UploadData Uri Byte System Net
  • scanf("%[^\n]s",a) 与 gets(a)

    有人告诉我 当用户输入字符串时不应使用 scanf 相反 大多数专家以及 StackOverflow 上的用户都使用 gets 我从来没有在 StackOverflow 上问过为什么不应该使用 scanf 而不是 gets 来处理字符串 这
  • C++ 循环遍历 Map

    我想迭代中的每个元素map
  • Mono 准备好迎接黄金时段了吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 有人在大型或中型项目中使用过 Mono 开源 NET 实现 吗 我想知道它是否适合现实世界的生产环境 它稳定 快速 兼容 足以使用吗 将项目移植到 Mono 运行时是否需要花费很多精力 或
  • 颤动相机插件

    我对 Flutter 和 Dart 都很陌生 我正在尝试使用相机插件了解事情是如何运作的 我找到的所有示例都有这部分 List
  • Galaxy S5 上的 FOCUS_MODE_CONTINUOUS_PICTURE 出现问题

    我正在开发一个使用相机预览和拍照的 Android 应用程序 我用FOCUS MODE CONTINUOUS PICTURE使用 Galaxy S4 发现对焦效果非常好 然而 在 Galaxy S5 上FOCUS MODE CONTINUO
  • iCarousel 停在用户选择的索引处

    EDIT 我正在制作一个像老虎机一样的应用程序 我补充道iCarousel对于槽对象 所以我有一个按钮可以旋转iCarousel 在我的 iCarousel 视图中 有两个插槽 Slot1 和 Slot2 下面是我的iCarouselVie
  • 使用 mongoose 切换数据库

    您好 有没有办法用 mongoose 切换数据库 我想我可以这样做 mongoose disconnect mongoose connect localhost db 但它不起作用我收到此错误 Error Trying to open un