问题标签 [aws-documentdb-mongoapi]
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.
c# - 带有 C# MongoDB 驱动程序的 AWS DocumentDB,不支持的高效分页
我正在使用 C# 针对 MongoDB 4.0 开发一些查询和索引MongoDB.Driver 2.12.4
MongoDB 一切都很好。不幸的是,我必须使用 AWS DocumentDB 作为生产数据库,它声称与 MongoDB 兼容,但我发现了几个问题:
- 索引是有限的https://docs.aws.amazon.com/documentdb/latest/developerguide/mongo-apis.html#mongo-apis-index
- 它不支持排序索引或查询(已删除,通过其他方式设法进行不区分大小写的搜索)
- 它不支持 facet(我用它来进行有效的分页)
"message": "Command aggregate failed: Aggregation stage not supported: '$facet'.",
问题是:使用 AWS DocumentDB 对结果进行分页的最佳方式是什么?是否有任何选项可以使用单个查询来执行此操作?或者我必须两次访问数据库?
这是我使用 Facet 和聚合 facet 结果的原始实现。
更新 2021-07-06
这是我的解决方法,它查询两次数据库,因为我需要匹配过滤条件的项目总数。
aws-documentdb-mongoapi - AWS DocumentDB:实例 writeIOPS 和集群 volumeWriteIOPS 有什么区别,为什么 volumeWriteIOPS 是 writeIOPS 的 100 倍?
我们最近部署了一个带有一个实例的 AWS documentDB,在过去 72 小时内插入了大约 6000 个文档。
奇怪的是,实例和集群的写入操作数完全不同。集群状态超过 1000 个 volumeWriteIOP,而实例显示(更多预期)6 个 writeIOP(过去 3 天的持续时间)。
一些细节:每个文档平均为 14kb。该集合有两个索引。一个在 _id 字段上,另一个在包含最多三个值的数组上(几乎所有文档在这个数组中只有一个值)。每秒大约插入 2 个新文档和更新 4 个文档(根据集群和实例)。
集群和实例中的 readIOP 均为零,IndexBufferCacheHitRatio 为 99.9-100%。(opCountersQuery 约为 9)。
据我所知,除了标准设置外,没有任何更改流或任何东西。
我正在使用 node/mongoose 连接到 documentDB。
我的问题主要是,这些 volumeWriteIOP 是从哪里来的?volumeWriteIOPs(集群)和 writeIOPs(实例)是完全不同的测量吗?我还缺少其他东西吗?
amazon-web-services - 尝试连接到特定端口上的 aws ec2 时出现连接被拒绝错误?
我们正在尝试在 aws ec2 上使用 ssh 隧道本地端口转发,这应该将请求转发到 DocumentDB。
使用 netstat 命令(netstat -ano|grep 27777
),我们知道端口正在侦听 aws ec2。但是,使用我们机器和 mongodb 应用程序的 telnet 命令,当我们尝试连接到 27777 上的 ec2 实例时,我们得到连接拒绝错误,其中我们可以从我们的机器()SSH 到 ec2 实例。使用ssh -i "ec2keypair.pem" ec2-user@ec2*****.compute.amazonaws.com
telnet 命令,我们得到异常Could not open connection to the host, on port 27777: Connect failed
。端口在 aws 安全组以及我们的机器防火墙入站和出站规则中打开。谁能告诉我们原因问题?
mongodb - 有没有更简单的方法/工具来查询 mongo 文档?
Mongo 是我们的 OLTP 数据库——我们确实有一些管道将数据从 Mongo 带到 OLAP 数据仓库以进行报告/设计。但是,有没有一种简单的方法可以直接在 Mongo 数据库上运行查询 - 我们每天都会收到 100 个即席请求,我们想探索是否有任何简单的方法(如果有工具)直接回答其中的一些请求查询 mongodb 而不是不断更新我们的管道和更改报告数据模型
apache-spark - 如何将 documentdb 连接到 emr 实例中的 spark 应用程序
在我的 EMR 实例中尝试使用 mongodb 配置 spark 时出现错误。下面是命令——
我是 Spark 和 AWS 的初学者。有人可以帮忙吗?
mongodb-query - 当所有结果都匹配时,计算使用 $match 过滤的 $lookup 和 $unwind 文档而不删除父文档
我有一个集合“所有者”,我想返回一个匹配过滤器(任何过滤器)的“所有者”列表,以及该所有者的“宠物”集合中的“宠物”计数,除非我不想要死去的宠物。(编造的例子)
我需要返回的文档看起来与添加了“petCount”字段的“所有者”文档完全一样,因为我正在使用带有 Mongo Java 驱动程序的 Java Pojos。
我使用的 AWS DocumentDB 尚不支持 $lookup 和过滤器。如果是这样,我会使用它并且我会完成:
但因为它不是我到目前为止得到的:
这非常有效,除非所有者只有“死”宠物,否则不会返回所有者,因为所有“文档副本”都被 $match 过滤掉了。当所有文档都为“DEAD”时,我需要使用 petCount = 0 返回父文档。我无法弄清楚如何做到这一点。
有任何想法吗?
这些是 DocDB 4.0 支持的操作https://docs.amazonaws.cn/en_us/documentdb/latest/developerguide/mongo-apis.html
spring-data-mongodb - AWS Document DB - Spring Boot 集成 - WRITE Ops 的提交行为
我有一个 Spring Boot应用程序2.2.5 RELEASE
(我们在没有明确声明的情况下使用MongoOperations
MongoTransactionManager
在此设置中,对于 MongoDB 4.X 副本集,如果客户端未启动显式事务,我们将获得“自动提交”写入。看这里
但是,我们想了解,当我们在 DocumentDB Cluster(具有副本集)上执行 WRITE 操作时,使用相同的 Mongo Java 驱动程序版本3.11.2
,兼容MongoDB Server 版本,而不从客户端(即 spring boot 应用程序)启动显式事务4.2.X
),何时或如何准确地进行数据库提交?我们已经看到插入后间隔很近的更新(在 <50 毫秒内)失败,说明更新无法找到插入的记录。
似乎与 MongoDB 相同的行为,即“自动提交”可能不适用于“DocumentDB”。在那种情况下,如何提交 WRITE?
有人可以帮助我们理解潜在的行为吗?我们在AWS DocumentDB 文档中找不到任何有关WRITE Ops wo Transactions 的详细说明。
此外,DocumentDB 是否在集合上使用单线程 WRITE 方法,或者它是如何使用的?
amazon-web-services - READIOPS 指标图未显示任何内容
嗨,我正在使用 aws document db 进行一些性能测试。我只在一段时间内进行读取操作。但奇怪的是,我在 READOPS 计数指标中没有看到任何内容
mongodb - 当用户名和密码作为参数传递时无法连接到文档数据库
我有一个 documentdb 集群,当我同时传递用户名和密码 args 时,我无法连接到 documentDB
mongo --host <myDocDbHost>:27017 --username admin --password <myPassword>
我收到以下错误
当我尝试
mongo --host <myDocDbHost>:27017 --username admin
在下一个提示中输入密码时,它会询问我可以连接的密码。我确认我在这两种情况下都使用了正确的密码。当我尝试直接从与 documentDB 相同的 VPC 中的 EC2 实例以及通过 ssh 隧道连接时,我遇到了同样的问题。有人可以通过同时传递用户名和密码参数来帮助我连接到数据库吗