问题标签 [mongo-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 - eval 内联 mongodb 副本集配置
我可以通过以下方式设置 mongodb 副本集:
config.js
javascript配置文件在哪里:
但不能内联:
得到错误:
我尝试使用--eval
它给了我输出:
但是没有创建副本集。
为什么我需要内联创建副本集配置?因为我正在创建一个大sh
文件,首先启动所有 mongo 节点,然后启动副本集。我在那里使用 bash 变量,例如$port1
, $port2
,$port3
以保持 bash 代码干燥。因此,如果我要使用而不是内联配置,我必须在我的文件和文件config.js
中编辑端口号 2 次。sh
config.js
那么如何在config.js
文件中而不是使用 bash 命令启动副本集呢?
bash - mongo eval 不评估通过 env 变量给出的 eval 表达式
我正在尝试制作一个“包装器”bash 别名函数来评估 mongo 片段
我将片段存储为 env 变量
我执行的事情
但它不执行操作。这只是
$ mongoshelleval $delsessions
MongoDB shell 版本:2.4.8
Thu Aug 07 03:50:18.809 versionArrayTest 通过
连接到:db
Thu Aug 07 03:50:18.861 创建新连接到:127.0.0.1:27017
Thu Aug 07 03:50: 18.867 BackgroundJob 开始:ConnectBG
Thu Aug 07 03:50:18.870 已连接连接!
db.sessions.drop()
Thu Aug 07 03:50:18.880 释放 1 个未收集的类 mongo::DBClientWithCommands 对象
不抛出任何错误。只是打印回参数db.sessions.drop()
会话仍然存在
$ mongoshell
MongoDB shell 版本:2.4.8
连接到:db
db.sessions.find()
{ "_id" : "yr5rxguSbb32Q880Jj36Rq2_uU
{ "_id" : "9PQh_ml5Gloiaunv6pbgVevM_6
{ "_id" : "OacGUyf-V1DcTQIg3lMgFXUL-N
{ "_id" : "GC7gh09iqVUny9HM8gnGl9Hzxt
{ "_id" : "_f4koE0tagJ7vwuU76BatcDeEb
{ "_id" : "t1CX_eqi7FcCREfBB2X5CpgOcz
为什么它不做我打算做的事情,如果它不执行查询,为什么它不抛出任何错误?
mongodb - MongoDB shell 中的“it”代表什么?
find
当 a 的结果太长而无法在终端中显示时,您会看到它。
很有可能“它”只是代表它,但我不确定,我似乎找不到任何关于它的文档。据我所知,“it”也可能是“increment through”的缩写。
这是什么意思,在终端中使用“it”进行分页是惯例吗?
javascript - 循环遍历所有 Mongo 集合并执行查询
首先,我对 mongodb 很陌生。这是我的问题,我无法找到解决方案。
假设我有 3 个不同的集合。
我想创建一个脚本来迭代这个数据库中的所有集合,并在每个集合中找到最后插入的时间戳。这是在 mongos 中有效的方法。
1. 问题(遍历所有集合)
有没有可能做某事。喜欢。
问题在这里,分配my_collections
不起作用。我明白了SyntaxError: Unexpected identifier
。我需要引用“显示”声明吗?甚至可能吗?
2.问题(在js var中存储集合)
我可以通过这样做来解决问题 1:
产生以下last_element.next()
错误:
错误 hasNext: false 在 src/mongo/shell/query.js:124
似乎 last_element 没有正确保存。
关于我做错了什么的任何建议?
更新
尼尔斯的回答让我找到了这个解决方案。除了他的代码之外,我还必须检查该函数是否getTimestamp
真的存在。对于某些“虚拟”集合,似乎没有 _id 属性。
javascript - 如何在 mongo shell 中“要求(模块)”
我正在编写一个用于数据管理的 mongo shell 脚本。我想使用将函数库用作模块的模块化代码来编写它。在某些情况下,我自己的模块。在其他情况下,仔细选择 node.js 模块(我知道它们可以在 Mongo shell 环境中工作,例如 uuid)。
不幸的是,Mongo 缺乏真正的模块管理。load() 不是一回事。我正在寻找一个回填,因为它是。
有谁知道可以提供 CommonJS 模块加载功能的库,该库足够通用以在 Mongo shell 中运行,或者已被移植以在 Mongo shell 中运行?
是的,我知道,我可以在纯 node.js 环境中完成。但是,如果有一个真正的模块加载器可以在 mongo shell 中工作,那将是我的首选。
mongodb - 我如何在 MongoDB 中查询操作日志(Oplog)?
我想查询 oplog 以查找在特定时间进行的操作。如何在 MongoDB 中查找和查询 oplog。oplog放在哪里?请举例说明...我在互联网上找不到任何教程...
mongodb - MongoDB:在集合中的数百万条记录上查找 count() 命令的执行时间?
我正在尝试查找对包含数百万条测试数据记录的集合执行 count() 所需的时间,并具有以下场景:-
1)从第一个 Mongo shell 我使用代码将数百万条记录插入到集合中
2)从 2ndMongo shell 我试图在该集合上找到 count() (Imp:虽然插入仍在第一个 Mongo Shell 上执行)
我研究但发现 explain() 和 stats() 不能应用于 count() 命令。
一些
我需要找出当有插入进行收集时 count() 需要多少时间(类似于现场场景)?
有没有其他好的方法可以做到这一点?
mongodb - 为什么 shardCollection 命令在 mongo shell 脚本中不起作用
我正在尝试在 mongo shell 脚本中执行以下命令:
但它什么也没做。
但是,当我从脚本执行时:
我得到了所有的帮助选项。
所以意味着 'sh' 变量也可以在 mongo shell 脚本中使用。
那为什么我不能通过 mongo shell 脚本执行 shardCollection 呢?
编辑:感谢尼尔的评论.. 这是我的 mongo shell 脚本
每个集合中的每个文档a,b,c
都有一个字段“shardKey”(带索引)。因此,“shardKey”有助于将具有特定 shardKey 的文档保存在一个分片上。
现在当我去 mongo shell 并运行时
我得到的输出为
并在此处列出没有集合的分片。表示sh.shardCollection
不工作。
mongodb - 使用外部编辑器从 MongoDB 编辑对象不会更新对象
我正在使用 Mongo shell。我已将我的 EDITOR 设置为我的记事本++ 路径。我创建了一个对象,然后使用 EDIT 命令使用 notepad++ 编辑对象,但它不会更新对象。
我错过了什么?
mongodb - 无法使用身份验证制作基本的 mongo shell 脚本
我有一个非常复杂的问题,我想我可以通过编写一个 mongo shell 脚本来解决,但我什至无法建立一个简单的连接。我有一个本地 mongo 数据库,它需要一个我通常访问的用户名/密码,如下所示:
此时我输入密码并万岁!我有一个贝壳。但这对我的问题不起作用。作为测试,我创建了一个名为 test.js 的文件,其中包含以下内容:
然后我从命令行运行脚本,如下所示:
在这一点上我得到这个:
为什么我没有结果?