问题标签 [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.
macos - mongo shell 未显示所有数据库
再会。
我一直在使用使用 mongodb 的meteorJS 进行开发。那里没有问题。我一直在使用 mongo shell 来访问我的开发机器(osx 10.11)上的数据库。这是我第一个使用 mongo 的项目,当 shell 加载时,它会连接到db.test
,我总是show dbs
会获取数据库列表,然后use myApp
.
昨天每当我进入 shell 并键入show dbs
唯一显示的是local 0.078GB
. 但是,我的应用程序仍在工作并将数据提取和推送到数据库。
我检查了 mongod.conf 中的 dbpath,这似乎没问题。我不完全确定事情的确切顺序,但有两件事不同(我不确定这些是发生在show dbs
没有显示所有内容之前还是之后,我不确定哪个先出现):
- 加载 mongo shell 时出现此错误:
WARNING: soft rlimits too low. Number of files is 256, should be at least 1000"
我按照这些指示似乎阻止了该错误的出现(https://github.com/basho/basho_docs/issues/1402)
- 我使用 Meteor Toys 并且第一次更新(这是Meteor Toys 小部件
user.profile.companyName
中标准内的自定义字段。profile
奇怪的是应用程序仍然可以访问数据库和集合,但是 mongo shell 没有显示。我已经将 mongodbrew upgrade mongodb
从 3.0.2 更新到 3.0.7 无济于事。
有任何想法吗?
javascript - MongoDB shell:如何删除数据库内所有集合中的特定元素
我想在所有集合中删除所有与正则表达式的巧合。
我需要这个,因为今天我的应用程序中的 JSON 解析器失败了,现在数据库已损坏。
我可以手动完成,但我有 100 多个集合,并且
db["X"].remove({ "DateTime": { $regex : "2015-11-16" } })
为每个集合手动输入 mongo shell 需要相当长的时间。
您知道在 mongo shell 中自动执行此操作的任何方法吗?我总是通过RMongo
R 中的包访问这个数据库,我可以通过dbRemoveQuery(rmongo.object, collection, query)
但我想知道它是否可以在 mongo shell 中完成,也许更快一点。
mongodb - 如何获取在 mongoDB 中存在超过 1 次的具有相同字段的文档列表?
我想创建一个查询,该查询将获取在 mongoDB 中存在超过 1 次的标题的所有文档。
可以说这是我的文档:
我想设置一个查询,该查询将生成一个列表
这意味着具有相同标题的记录在数据库中存在超过 1 次。我可以在 Java 代码中执行此操作,但似乎在数据库级别执行此操作更合理。
mongodb - 所有数据仅存储在 MongoDB Sharded Cluster 中的单个分片中
我创建了一个 MongoDB Auto Sharding Cluster,它有 3 个 Shard 服务器(没有复制)、1 个 Config 服务器和 1 个 Mongos 实例。
这是 sh.status() 输出。
尽管这里的块数量很大,但所有数据都只存储在一个分片中。平衡器状态为“活动”,但并非一直在运行。一旦它只运行了 5-10 秒。它显示以下错误,
谁能帮我解决它?我是 MongoDB 的新手,想通过创建分片集群来学习和测试 MongoDB 的可扩展性。
如果有助于解决问题,这里有一些更多信息:
在创建集群时,我按照以下步骤操作。
- 在所有机器上安装 MongoDB。
- 授予对分片服务器的“/data/db/”文件夹和配置服务器的“/data/configdb/”文件夹的所有权限。
- 启动配置服务器。[mongod --configsvr]
(这里,配置服务器ip:172.18.109.81:27019) - 启动 Mongos。[mongos --configdb 172.18.109.81:27019 --port 27020]
(这里,mongos服务器ip:172.18.109.250:27020) - 启动所有 Shard 服务器。[mongod --shardsvr]
注意:分片服务器 => 172.18.109.46:27018 (shard0000) , 172.18.109.60:27018 (shard0001), 172.18.109.63:27018 (shard0002) - 在 Mongos 机器中,打开另一个终端并运行 mongo 172.18.109.250:27020/admin
- 添加所有分片 [sh.addShard("172.18.109.46:27018")...]
- Enable Sharding for Database,使用 shardKey 定义 Shard 集合
我也尝试过使用不同的分片键(我认为,选择分片键是问题),但结果也相同。“NLA_M.Read”有一个分片键,其值介于 100 和 600 之间。我也尝试过选择散列分片键,但没有变化。
如果我遗漏了什么,请告诉我。
谢谢 :)
mongodb - 无法向mongodb添加功能
不知道什么时候开始出现问题。我发现当我为 mongodb 创建一个新函数,然后像这样运行它
db.loadServerScripts();
testFun('xxx');
时:会出现两个错误:
SyntaxError: missing } after property list src/mongo/shell/db.js:1038
ReferenceError: testFun is not defined (shell):1
但是旧函数工作正常。当我删除一个旧函数并重新创建它而不做任何更改时,它也会导致上述相同的错误。
我使用的 mongodb 版本是2.6.10
.
javascript - MongoDB脚本执行存储在变量中的查询
我的 .js 脚本从包含 mongodb 查询的文件中读取,并将其填充到数组中。然后我读取了该数组并执行了查询,但它们没有被执行。下面是我的代码。
仅当我将第 12 行替换为实际查询时才有效,例如 db.coll.count()
mongodb - MongoDB Shell(版本 3.2)中的“...”
目前在我的 mongo shell 中运行以下聚合查询: db.zips.aggregate([{$group:{_id:{"state":"$state"},{population:{$sum: "$pop}}}] ),当我按下回车键时,“...”会出现一个闪烁的光标。运行需要很长时间还是希望我继续输入?
谢谢!
mongodb - MongoDB:.mongorc.js 中定义的自定义命令
我想定义一个自定义的 Mongo shell 命令。给定.mongorc.js
如下:
我得到了初始数据库的正确大写名称,但是当我切换到其他数据库时,我仍然得到初始数据库的名称而不是当前数据库的名称。
我看到.mongorc.js
是在运行之前mongo
运行的,这就是为什么dbuc
变量已经分配了初始数据库的值 - 测试。但我更想知道无论我打开什么基础,如何获取当前数据库的名称。
mongodb - 如何在 mongodb 中使用具有 userAdmin 角色的用户登录
我在 ubuntu 14.04 上启动了mongod服务器并作为服务运行,我启动了mongo shell 并创建了一个用户。
之后,我更改了编辑mongod.conf并设置auth=true并重新启动了mongod服务器作为服务。
毕竟,当我想用用户testAdmin启动mongo shell时。
但我无法登录,这给了我错误。
首先,当我指定数据库学生时,为什么要尝试连接到测试?其次,我知道 mongodb 中的 userAdmin 角色不适用于使用 userAdmin 在数据库中读/写我只能管理用户角色。但是要管理其他用户,我仍然需要登录 mongo shell。
当我在 mongod.conf 中关闭身份验证时它正在工作,所以其他事情都很好,只有身份验证不起作用。
mongodb - 减慢大型文档的 MongoDB shell 输出?
我正在尝试检查大于 Windows 命令窗口的打印缓冲区的文档。对于某些查询,more 允许您输入it
更多输出。有没有办法将此应用于其他命令?
例如,我可能会做db.coll.findOne()
大大超过打印缓冲区的事情。我想查看尽可能多的内容,键入it
,查看更多内容等。