问题标签 [mongodb4.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1087 浏览

mongodb - 类型错误:无法在 result.toArray 处读取 undefined\n 的属性“n”

我正在从mongodb 3.6to升级mongodb 4.0并遇到聚合问题(似乎)

我有这个错误:

类型错误:无法在 result.toArray (/eliot-local-git/node_modules/mongodb/lib/operations/collection_ops.js:237:46) 处读取未定义的属性 'n'\n 结果 (/eliot-local- git/node_modules/mongodb/lib/utils.js:414:17)\n 在 executeCallback (/eliot-local-git/node_modules/mongodb/lib/utils.js:406:9)\n 在 handleCallback (/eliot- local-git/node_modules/mongodb/lib/utils.js:128:55)\n 在 cursor.close (/eliot-local-git/node_modules/mongodb/lib/operations/cursor_ops.js:218:62)\n在 handleCallback (/eliot-local-git/node_modules/mongodb/lib/utils.js:128:55)\n 在 completeClose (/eliot-local-git/node_modules/mongodb/lib/cursor.js:887:14) \n 在 _endSession (/eliot-local-git/node_modules/mongodb/lib/cursor.js:898:37)\n 在 AggregationCursor.Cursor。_endSession (/eliot-local-git/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:193:5)\n 在 AggregationCursor.Cursor._endSession (/eliot-local-git/node_modules/mongodb/lib /cursor.js:226:59)\n 在 AggregationCursor.Cursor.close (/eliot-local-git/node_modules/mongodb/lib/cursor.js:898:19)\n 在 cursor._next (/eliot-local -git/node_modules/mongodb/lib/operations/cursor_ops.js:218:23)\n 在handleCallback (/eliot-local-git/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:202:5 )\n 在 _setCursorNotifiedImpl (/eliot-local-git/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:560:38)\n 在 self._endSession (/eliot-local-git/node_modules/mongodb /node_modules/mongodb-core/lib/cursor.js:568:46)\n 在 AggregationCursor.Cursor。_endSession (/eliot-local-git/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:193:5)


我的总调用看起来像:


使用 :

mongodb v4.0.0

在此处输入图像描述


我也尝试过使用光标,但它不起作用:


@Alex Blex在这里我看到了兼容性mongodb-native-driver 3.1

在此处输入图像描述

0 投票
0 回答
161 浏览

ruby-on-rails-5 - Mongoid 7.0.1 中的多文档 ACID 事务

Mongo 4.0 最近发布了对多文档事务的支持。随着 Mongoid 7.0.1(Mongo 2.6.1 驱动程序)的发布,Rails 现在似乎支持多文档事务。

但是,Mongoid 的文档网站似乎没有更新。我们将如何使用此功能?

我必须更新 2 份文件(一份贷方和一份借方),所以两者都必须通过或都必须失败。有人知道如何使用新功能吗?

(我会使用mongoid7标签,但声誉不足以创建)

0 投票
1 回答
1040 浏览

mongodb - mongodb聚合中的$concat字符串和$cond

我想在 url 值附加前缀以使其成为绝对路径,同时仅当 _meta 字段 data_type 是文件而不是文本时才从数据库中检索。以上述格式存储,并且仅使用附加的 url 以相同的格式检索。

有没有办法通过使用聚合管道来做到这一点?

0 投票
1 回答
138 浏览

mongodb - MongoDB changeStreams 可以监听系统级集合吗?

由于 MongoDB 变更流上可用的文档有限,他们从 3.6 版开始引入,我无法断定 MongoDB 变更流是否让我们监听系统集合更改。

目前,我对 system.profile 集合感兴趣。

0 投票
0 回答
45 浏览

mongodb - MongoDB通过ip将副本集添加到外部服务器

我创建了 3 个 Digitalocean 液滴。默认情况下,我选择Ubuntu 18.06 和 MongoDB 4。在这里,默认情况下,我有 3 个 MongoDB 配置的液滴,并且都已启动。我可以为所有这些访问“ mongo ”外壳。

现在我想通过这段代码运行一个副本集设置:

在这个配置中,我只是告诉 MongoDB 运行副本集,它会检索我的错误

当我添加 bindIp 时,我还没有添加任何 bindIp,我无法再次启动 MongoDB。我像这样放入 mongo.conf :

另外,在这 3 个 droplets 之间有一个私有网络,例如:10.10.1.1我可以利用这个私有 IP 使其更容易和更安全吗?

0 投票
0 回答
33 浏览

mongodb - 使用 zip 安装和配置 Mongodb

我从这里下载了 mongodb 。当我解压缩它时,它只有 3 个 *.pdb。我如何使用它们以及如何创建副本集。

更新

在 mongodb 4 中,我如何创建副本集?

0 投票
0 回答
545 浏览

mongodb - 将 mongodb 4.0 与 robomongo 连接

这是我的 mongodb 状态的日志,其中显示处于运行状态

但是当我将它与 robomongo 连接时,它会抛出错误

请帮忙!!!

0 投票
3 回答
6220 浏览

mongodb - 在 mongoDb 4.xx 中绑定多个 IP

对于 mongoDB 4.0.3,无法在 bindIp 中添加多个 ip

以下配置适用于本地主机

以下适用于从其他 ip 登录:

以下不起作用

0.0.0.0 或 127.0.0.1 以外的任何 ip 都会导致 bindIP 出错

如果我尝试以下:

这个MongoDB Doc没有帮助

任何帮助将不胜感激。

0 投票
0 回答
375 浏览

mongodb - 手动停止主节点后,MongoDB 副本集未选择新主节点

我有 4 个节点设置的 mongoDB 4.0.1 副本集,配置如下

这一切都在本地主机上,连接很好,没关系。我基本上是在测试关闭主 mongo-1(10-12 秒后)剩余节点选择一个新的主理想 mongo-2,因为它的优先级更高。

但是如果我取下容器 mongo-1,其他 3 个节点只会无限期地尝试连接到 mongo-1。我什至等了 10 多分钟,但所有日志显示都是尝试连接host-unreachable等等。

如果有人对我可能遗漏的内容或我未设置的配置有任何想法,请随时评论或建议解决此问题的方法。谢谢!

编辑 这是我的输出rs.status()

0 投票
0 回答
18 浏览

mongodb - 如何从猫鼬中的引用模型中获取字段?

嘿,伙计们需要一些查询帮助,以下是模型,我将其引用到另一个名为 Project 的模型

//下面输出

项目模型存储为

我试图从查询中获取“en”

但是不起作用,非常感谢任何帮助,或者非常感谢任何建议。

但是,如果我直接尝试从项目中获取“en”字段,我会这样做并且正在工作

先感谢您 !:)