小编D. *_* SM的帖子

MongoDB 托管选项,因为 Heroku mLab 附加组件已被删除

我现在在 Heroku 上托管了一项服务,我正在使用 mLab 附加组件来确保部署的版本能够写入数据库等。我现在可以做什么?收到这封邮件后,我很困惑:

mLab 团队已选择停止使用此附加组件。mLab MongoDB 附加组件将于 2020 年 11 月 10 日从所有 Heroku 应用程序中删除。我们建议您在 2020 年 9 月 1 日之前通过仪表板或 CLI 自行删除 mLab MongoDB 附加组件。

有人有什么建议吗?我应该离开 Heroku 吗?如果使用 AWS 会更容易(不过我以前从未使用过 AWS)。

heroku mongodb amazon-web-services mlab

11
推荐指数
1
解决办法
3796
查看次数

Mongoose 从 withTransaction 回调返回值

我想利用 mongoose 的withTransaction帮助程序,特别是它能够自动重试瞬时事务错误。然而,助手似乎withTransaction无法返回数据,这对我来说是一个问题。

我的代码看起来像:

import { startSession } from 'mongoose';

async addItem(itemData) {
    const session = await startSession();
 
    session.startTransaction();
    try {
        const item = await new Item({ itemData }).save({ session });
        
        // a bunch of other async operations...

       await session.commitTransaction();
       session.endSession();

       return item;
    } catch (error) {
        await session.abortTransaction();
        session.endSession();
        throw error;
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能(1)使用withTransaction助手但仍然让这个函数像item当前一样返回 ,或者(2)通过除使用withTransaction.

javascript transactions mongoose mongodb node.js

7
推荐指数
1
解决办法
3059
查看次数

为什么 MongoDB 中的事务必须使用副本集?

根据 MongoDB 文档,事务仅适用于副本集,不适用于单个节点。为什么有这样的要求呢?在单个节点上进行交易不是比在分布式系统上更容易吗?

transactions distributed-transactions mongodb

5
推荐指数
1
解决办法
1533
查看次数

rails g mongoid:config 不工作 Rails 6.1

我在 Mac Sierra 上使用 Rails 6.1,并尝试安装Mongodb作为数据库,已经在 bash 和 gem 上安装了 mongo db 服务,但是当我输入时:

bin/rails g mongoid:config
Run Code Online (Sandbox Code Playgroud)

它显示以下错误:

Traceback (most recent call last):
26: from bin/rails:5:in `<main>'
25: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `require'
24: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:299:in `load_dependency'
23: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `block in require'
22: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
21: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
20: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
19: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
18: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
17: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/commands.rb:18:in `<main>'
16: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/command.rb:50:in `invoke'
15: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/command/base.rb:69:in `perform'
14: from /Users/guilherme/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/thor-1.0.1/lib/thor.rb:392:in `dispatch' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails mongodb mongoid macos-sierra

5
推荐指数
2
解决办法
730
查看次数

使用 mongorestore 导入 CosmosDB MongoDB API 失败并出现可重试写入错误

我正在尝试使用 mongodump 和 mongorestore 使用 MongoDB API 将数据从旧的 MongoDB 数据库服务器导出和导入到 Azure CosmosDB。但是我在连接到 CosmosDB 时遇到了问题。我正在使用带有 URI 标志的连接字符串。

我的 mongorestore 命令包括连接字符串如下:

mongorestore --uri="mongodb://$COSMOS_USERNAME:$COSMOS_PASSWORD@$COSMOS_HOST:$COSMOS_PORT/?maxIdleTimeMS=120000&retrywrites=false&appName=@$DB_NAME@&replicaSet=globaldb&ssl=true" --archive="$ARCHIVE_NAME"

该命令的错误消息是:

error restoring from archive 'testProdExport.archive': (BadValue) Retryable writes are not supported. Please disable retryable writes by specifying "retrywrites=false" in the connection string or an equivalent driver specific config.

正如您在连接字符串中看到的,我包含了 retrywrites=false URI 参数,但看起来 CosmosDB 无法识别该参数。

有没有人有类似的经历?

//编辑:我已经尝试并验证了连接字符串在 mongoose 连接以及 MongoDB Compass 中都有效。

mongodb mongorestore azure-cosmosdb-mongoapi

3
推荐指数
1
解决办法
1200
查看次数

使用官方mongodb golang包调试查询(命令监控)

我正在尝试打印使用“go.mongodb.org/mongo-driver/mongo”包创建的 mongodb 查询。是否有任何选项可以查看此包生成的查询或以任何方式转储它?我可以进入 mongod 实例并修改分析级别并查看来自 mongod 的查询,但这不是正确的方法。

go mongodb

3
推荐指数
1
解决办法
4394
查看次数