问题标签 [mongodb-compass]
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.
mongodb - MongoDB Compass Community 1.16.3 $match 问题与 ObjectId + ISODate
我正在尝试aggregation
在MongoDB Compass Community 1.16.3上构建一个,但同时在$match
舞台查询时遇到了一个奇怪的问题。ObjectId
ISODate
非工作$match阶段
此查询根本不起作用,指南针返回Expected end of input but "}" found.
但是这些$match阶段有效
完美的结果!
完美的结果!
ObjectId
如果我同时使用and ,查询似乎不起作用ISODate
。那么,我是不是在某个地方犯了错误?还是我必须把它分成两个$match
阶段?有什么想法吗?
已编辑
如果我将管道分成 2 个$match
阶段(我在此示例中删除value
) ,它运行良好,但我不知道这是否是一个好习惯以及它是否有效!
mongodb - MongoDB 指南针 - NaN 文字导致错误?
我正在使用 MongoDB 聚合来汇总一些记录。其中一个具有NaN
值,因此,最终值变为NaN
。我已经写了一个$project
步骤来转换NaN
为0
. 但是,使用NaN
文字会导致错误Expected "[" or AggregationStage but "{" found.
此$project
步骤产生错误:
但是,如果改为使用:
哪里NaN
变成"NaN"
,错误就消失了。
NaN
我们将如何在 MongoDB Compass 中使用文字?
mongodb - 正则表达式选项 /i 等在 MongoDB Compass 中不起作用
这个问题与 MongoDB Compass Community Version 1.17.0 有关。
代码{ location: /IL$|US$/i }
(带有正则表达式选项)与文档过滤器工具一起使用,但$match
应用程序说与聚合管道阶段一起使用Expected "[" or AggregationStage but "{" found.
没有正则表达式选项的代码,即{ location: /IL$|US$/ }
在过滤器和聚合工具中都有效。
如何在$match
MongoDB Compass 的管道阶段使用正则表达式选项?
mongodb - 创建将匹配 MongoDB 中的查询的复合索引
对于我们的应用程序,我正在使用 MongoDB-Atlas 上的免费层(目前)。除了其他字段外,我们的文档还有一个开始时间,它是一个 Datetime 对象,以及一个 userId int。
我正在寻找与以下查询匹配的索引:
其中start和end参数是日期对象或传递的 ISOStrings 以定义日期范围。
这里我调用查询,对结果进行排序:
看起来很简单,以下索引将匹配上述查询:
但是使用 mongodb-compass 监控集合,我看到这个索引没有使用。此外,mongodb 文档明确指出,如果索引完全匹配查询,则无需检查任何文档,结果将仅基于索引信息。不幸的是,对于我运行的每个查询,我都会检查文档,这意味着我的索引不匹配。
有什么建议么?我觉得这应该非常简单明了,但也许我遗漏了一些东西。附件是来自 mongodb-compass “解释”查询和执行的屏幕截图。
mongodb - 是否可以在 MongoDB Compass 中使用 mongorc.js?
我想使用我在 MongoDB Compass中的mongorc.js中定义的自定义命令。这可能吗?是否可以在 MongoDB Compass中使用mongorc.js ?
mongodb - MongoDB Compass 使用 ssl 立即断开连接,但从命令行可以正常工作
我正在尝试使用 ssl 设置 mongodb,但在通过 mongodb 指南针连接时遇到问题。
运行 mongodb 为:
蒙神
工作正常,我可以通过指南针和命令行轻松连接到它。
但是,当使用 ssl 运行服务器时,如下所示:(稍后我将为此设置一个配置文件)
mongod --sslMode requireSSL --sslPEMKeyFile mongo.pem --sslCAFile rootCA.crt --bind_ip 127.0.0.1
我在通过指南针连接时遇到问题。我给 compass 一个自制的 CA 证书(与服务器使用的相同)、一个密钥和一个由密钥生成的 CA 证书签名的证书。结果是罗盘上出现以下错误:
无法在提供的主机和端口上连接到 MongoDB
并且在 mongod 服务器上记录了以下内容:
2019-05-25T13:34:24.730-0400 I NETWORK [listener] 连接从 127.0.0.1:52246 #3 接受(现在打开 1 个连接)
2019-05-25T13:34:24.793-0400 I NETWORK [conn3] 结束连接127.0.0.1:52246(现在打开 0 个连接)
2019-05-25T13:34:24.795-0400 I NETWORK [listener] 从 127.0.0.1:52247 #4 接受连接(现在打开 1 个连接)
2019-05-25T13:34 :24.832-0400 I NETWORK [conn4] end connection 127.0.0.1:52247 (0 个连接现在打开)
如您所见,没有 ssl 错误,也没有任何与此相关的错误。Compass 连接后立即断开连接,然后再尝试一次,然后放弃。
另一方面,使用与 compass 相同的证书在命令行上连接到所需的 ssl 服务器可以正常工作:
mongo --ssl --host 127.0.0.1 --sslPEMKeyFile compass/compass.pem --sslCAFile rootCA.crt
唯一的区别是 compass.pem 是从以下位置生成的:
cat compass.crt compass.key > compass.pem
而不是直接将 crt 和 key 文件提供给 compass。