问题标签 [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.
mongodb - 检查 MongoDB 数组中的所有元素是否与给定查询匹配
这是我的文档的外观:
我正在寻找 24 小时营业的商店,即每个元素的working_hours
营业时间0
和关闭时间24*60*60
(午夜后几秒)的商店。
我尝试使用$all
and $elemMatch
,但如果数组的至少一个元素与给定条件匹配(我不需要),它们在我需要匹配的情况下工作。
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 数组是正确的,他们只是没有正确渲染)
mongodb - 尝试启用 Mongo DB 身份验证时发生 TypeError
我正在尝试启用 Mongo DB 身份验证的第 3 步。当我尝试完全按照说明通过 Mongo shell 创建用户时,shell 报告:
TypeError:对象管理员的属性“createUser”不是函数
我使用 --auth 选项启动 mongod 并切换到 admin 数据库。一如既往,帮助表示赞赏。
mongodb - 如何在 mongo shell 中对输出进行分页
是否可以从 mongo shell 将结果通过管道传输到寻呼机?
mysql cli 等效项是:
mysql> 少寻呼机
mongodb - MongoDB 将所有数据路由到分片集群中的一台服务器
我第一次在 Windows 上设置了一个 MongoDB 分片集群,如下所述:http: //docs.mongodb.org/manual/tutorial/deploy-shard-cluster/
我使用以下脚本来启动配置服务器、mongos 实例和 mongo 数据服务器。
运行上述脚本后,我连接了 mongos 实例:
后来,我添加了分片并在数据库和集合上启用了分片:
最后,我在 mongo shell(连接到 mongos 实例)中运行以下注释:
后来,我连接到我的一个数据服务器:
当我尝试查看 testData 集合中的文档计数时,我看到数字是 2500,它代表所有文档的计数:
简单地说,数据并没有在所有分片之间进行负载平衡。我在这里做错了什么?
编辑:
这是 sh.status() 命令结果:
mongodb - 配置 Mongo shell 默认将所有数字存储为整数
默认情况下,MongoDB shell 将所有数字解释为浮点数;当试图将现有的 JSON 格式数据(在 Mongo 中存储为字符串)转换为实际的 Mongo BSON 对象时,这是一个问题。NumberInt(...)
用/显式地手动包装数据中的任何整数值也很乏味,NumberLong(...)
因为整数可以出现在数据中的任何位置。
有没有办法配置一个 MongoDB shell 会话以使用NumberInt
或NumberLong
默认使用?
或者:有没有办法将 JSON 字符串解析为 MongoDB shell 中的对象,以便所有不带小数点的数字都已经用NumberInt
/包裹NumberLong
?
mongodb - 从 MongoDB shell 获取当前脚本路径
我正在客户端中为 MongoDB shell 编写 JavaScript 代码。如何获取正在执行的脚本文件的路径?请注意,这不是 的值pwd()
。例如,我正在/my_scripts/utils.js
执行/my_path
:
所以pwd()
返回/my_path
,但我怎样才能获得pwd()
当前执行文件的完整路径(或值的相对路径),即/my_scripts/utils.js
?
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 中组合查询 - 但这似乎不起作用。
我尝试了很多东西 - 这是一个:
javascript - mongodb调试-ReferenceError:未定义控制台
我让js
文件mongodb
在我得到console.log
调试表达式的地方运行:
当我运行它...
...我在输出中遇到错误:
有没有办法记录中间结果以进行调试?
javascript - MongoDB:如何查询名为“版本”的集合
我正在使用一个包含名为“版本”的集合的 mongo 数据库。现在看来“db.version()”本身就是一个保留函数,集合名称被它隐藏了。
使用 Mongo Java 驱动程序可以从集合中检索数据,我如何使用 CLI 来实现?