问题标签 [mongodb-shell]

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 投票
2 回答
1791 浏览

mongodb - 检查 MongoDB 数组中的所有元素是否与给定查询匹配

这是我的文档的外观:

我正在寻找 24 小时营业的商店,即每个元素working_hours营业时间0和关闭时间24*60*60(午夜后几秒)的商店。

我尝试使用$alland $elemMatch,但如果数组的至少一个元素与给定条件匹配(我不需要),它们在我需要匹配的情况下工作。

0 投票
3 回答
974 浏览

mongodb - mongo shell 中的数组输出格式

有没有办法强制 Mongo shell 在页面上按顺序输出数组的内容?

具体来说:给定一个数组 [8888, 8888, 8888, 8888]

我希望它呈现为8888, 8888, 8888, 8888而不是

这就是我不断得到的。(实际数组有8888的84个元素。我知道这个例子会打印正确)

更具体地说,我试图让John Page 发布的 Mandelbrot 分形的聚合代码工作。诀窍是保持字体非常小。然而,即使将字体大小设置为 2 并将终端窗口设置为 1000 列,数组仍然会垂直打印出来。

我做了一些实验,根据每个数组元素的大小、字符间距和字体大小,粗略的指南是方括号 [ ] > 50 之间的字符总数或元素数的任何数组> 20 然后阵列垂直打印。

我使用 node.js 在终端 bash shell 中尝试了相同的实验,但没有发生这种情况。所以它似乎是一个 Mongo shell 格式化问题。

我尝试使用DBQuery.prototype._prettyShell = false此答案相反的方法在 Mongo shell 中进行漂亮的打印,但没有运气。

佩奇先生亲自再次测试了代码,并向我保证它可以按预期工作。

为了完整起见,我在 Mac OS X 10.7.5 下运行 MongoDB shell 版本:2.4.9 Terminal Version 2.2.3 (303.2)

非常感谢

(注意:发布的原始代码在初始循环中缺少 2 个左大括号for。我已经在我的代码上修改了这个,这不是问题的原因。由于聚合而产生的 finally 数组是正确的,他们只是没有正确渲染)

0 投票
2 回答
22126 浏览

mongodb - 尝试启用 Mongo DB 身份验证时发生 TypeError

我正在尝试启用 Mongo DB 身份验证的第 3 步。当我尝试完全按照说明通过 Mongo shell 创建用户时,shell 报告:

TypeError:对象管理员的属性“createUser”不是函数

我使用 --auth 选项启动 mongod 并切换到 admin 数据库。一如既往,帮助表示赞赏。

0 投票
3 回答
3369 浏览

mongodb - 如何在 mongo shell 中对输出进行分页

是否可以从 mongo shell 将结果通过管道传输到寻呼机?

mysql cli 等效项是:

mysql> 少寻呼机

0 投票
2 回答
2728 浏览

mongodb - MongoDB 将所有数据路由到分片集群中的一台服务器

我第一次在 Windows 上设置了一个 MongoDB 分片集群,如下所述:http: //docs.mongodb.org/manual/tutorial/deploy-shard-cluster/

我使用以下脚本来启动配置服务器、mongos 实例和 mongo 数据服务器。

运行上述脚本后,我连接了 mongos 实例:

后来,我添加了分片并在数据库和集合上启用了分片:

最后,我在 mongo shell(连接到 mongos 实例)中运行以下注释:

后来,我连接到我的一个数据服务器:

当我尝试查看 testData 集合中的文档计数时,我看到数字是 2500,它代表所有文档的计数:

简单地说,数据并没有在所有分片之间进行负载平衡。我在这里做错了什么?

编辑:

这是 sh.status() 命令结果:

0 投票
1 回答
320 浏览

mongodb - 配置 Mongo shell 默认将所有数字存储为整数

默认情况下,MongoDB shell 将所有数字解释为浮点数;当试图将现有的 JSON 格式数据(在 Mongo 中存储为字符串)转换为实际的 Mongo BSON 对象时,这是一个问题。NumberInt(...)用/显式地手动包装数据中的任何整数值也很乏味,NumberLong(...)因为整数可以出现在数据中的任何位置。

有没有办法配置一个 MongoDB shell 会话以使用NumberIntNumberLong默认使用?

或者:有没有办法将 JSON 字符串解析为 MongoDB shell 中的对象,以便所有不带小数点的数字都已经用NumberInt/包裹NumberLong

0 投票
3 回答
1907 浏览

mongodb - 从 MongoDB shell 获取当前脚本路径

我正在客户端中为 MongoDB shell 编写 JavaScript 代码。如何获取正在执行的脚本文件的路径?请注意,这不是 的值pwd()。例如,我正在/my_scripts/utils.js执行/my_path

所以pwd()返回/my_path,但我怎样才能获得pwd()当前执行文件的完整路径(或值的相对路径),即/my_scripts/utils.js

0 投票
1 回答
138 浏览

mongodb - 使用集合 B 中的信息过滤集合 A 中的文档 - 如何?

让我们假设一个集合 A 具有以下结构的文档:

{_id: N}N为正整数

第二个集合 B 包含以下类型的文档:

{_id: M, ids: [n1,n2,...]}其中 n1,n2,... 为正整数

B 中的文档有效地定义了集合 A 中的文档集。

这意味着集合 A 中有两种类型的文档:

  • _id 值包含在集合 B 中文档的至少一个 ids-array 中的文档
  • 以及 _id 不包含在集合 B 中文档的任何 ids-array 中的那些

现在我不知道如何使用 MongoDB shell 表达式完成以下任务:

我想从集合 A 中删除不包含在集合 B 中文档的任何 ids-array 中的所有文档。


我直观的方法是将所有 ids-arrays 转换为带有聚合的集合,然后使用这个新数组在 remove-method 中组合查询 - 但这似乎不起作用。


我尝试了很多东西 - 这是一个:

0 投票
2 回答
5203 浏览

javascript - mongodb调试-ReferenceError:未定义控制台

我让js文件mongodb在我得到console.log调试表达式的地方运行:

当我运行它...

...我在输出中遇到错误:

有没有办法记录中间结果以进行调试?

0 投票
1 回答
430 浏览

javascript - MongoDB:如何查询名为“版本”的集合

我正在使用一个包含名为“版本”的集合的 mongo 数据库。现在看来“db.version()”本身就是一个保留函数,集合名称被它隐藏了。

使用 Mongo Java 驱动程序可以从集合中检索数据,我如何使用 CLI 来实现?