问题标签 [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 投票
1 回答
1241 浏览

mongodb - 如何在 MongoDB shell 中将对象的 _id 字段类型更改为 ObjectId?

我在 MongoDB 数据库中有几个对象,其中_id字段被错误地分配了一个整数,我如何在 MongoDB shell 中用 ObjectId 替换这些整数?

此类对象的示例如下所示:

0 投票
1 回答
22148 浏览

mongodb - MongoDB $或查询

我在 mongo shell 中运行以下查询:

它只是没有按预期返回(JSON)?

0 投票
1 回答
516 浏览

mongodb - db.stats()/collections number & db.getCollectionNames() count 之间的差异

我正在mongodb-shell尝试了解mongodb,并注意到db.stats()显示的集合数量比显示的数量多 1db.getCollectionNames()

这是示例:

所以db.stats说有6 个集合,其中 asdb.getCollectionNames仅列出5 个集合名称。为什么会出现这种差异?

0 投票
1 回答
376 浏览

mongodb - MongoDB Catch-22 不会让我放弃大量收藏

所以我有一个 2TB 硬盘,在 1 个 mongoDB 中有 2 个集合。

  • Collection 1 大约 500gb 并且是必不可少的
  • Collection 2 大约 1500gb,需要删除。

我正在运行一个意外填满整个 HDD 的进程,留下 0% 的空间。除了 Linux Distro 和这个 mongoDB 之外,机器上几乎没有任何东西。

  • 我想删除集合 2。

为了做到这一点,我通常会进入 mongo 并输入db.collection.drop()

但是,mongoDB 当前没有运行。为了启动它,我正在使用:

  • [bobby@myPC bin]# ./mongod --dbpath /home/mongo &

但是,由于 HDD 上没有空间,因此返回:

我无法删除此集合,因为没有空间。而且没有空间,因为我无法删除此集合。

我怎样才能解决这个问题?有什么方法可以识别 /home/mongo 我可以取出哪些 mongoDB 文件?

0 投票
1 回答
1964 浏览

mongodb - 在 mongodb 上更新子元素

我对 mongodb 更新方法有一点问题。这是我的(简化的)模式:

我在数据库中有 2000 个对象。我想通过删除用户名值来匿名化数据。

我试过这个:

这不起作用,此查询删除密码字段并访问。我明白为什么,但怎么办?

mongo 想要分配“$set”字段,所以这不起作用。

我的问题是:如何在不删除整个“帐户”子文档的情况下更新后代字段?

(将“upsert”设置为 true 也是如此。)

0 投票
0 回答
82 浏览

javascript - 使用 mongodb shell 脚本时可以处理多少有限制吗?

我在将测试文档插入 MongoDB 时遇到问题。

我正在使用 JavaScript 创建我的测试文档,然后通过 MongoDB Shell 运行它们。但我得到了一些意想不到的结果。

我的脚本创建了一个具有以下树结构的文档。

当我尝试创建具有 15 个任务和 50 个时间表 ( createCollections("my project", 5, "my task", 15, 50, 100);) 的 5 个项目时,我只会在数据库中获得 2 个完整(无错误)的文档。当我尝试创建具有 1 个任务和 5 个时间表 ( createCollections("my project", 5, "my task", 1, 5, 100);) 的 5 个项目时,我只在数据库中获得 4 个完整(无错误)文档。比较奇葩。

我确信脚本会运行预期的迭代,因为我放置prints以验证插入是否实际运行。

输出:(如预期的那样。)

剧本

是我的脚本造成的,还是对您可以通过脚本执行多少操作存在限制/错误?

0 投票
2 回答
13522 浏览

mongodb - MongoDB 2.4 副本集授权

如何为 mongodb 2.4.1 设置正确的授权。我的设置似乎不起作用。副本成员配置:

添加用户授权后:

我无法访问 rs.* 命令。

0 投票
2 回答
248 浏览

mongodb - 在 shell 中重新分配 MongoDB _id

我正在尝试使用 MongoDB 重新分配 ID。但是,它没有将 ID 设置为等于我分配的值,而是创建了一个新的 ObjectId。如何分配自己的 ID?

我正在使用 Mongo 2.4.2

0 投票
1 回答
839 浏览

mongodb - 在 MongoDB shell 中声明变量不成功

这是我的文件:

insertDoc当我通过 mongodb shell将它分配给变量时:

为什么它没有被分配给变量以及该行从哪里开始

来自。有人能弄清楚吗?
编辑: 我实际上是将 mongoVUE 中的文档粘贴到 mongo shell 中。

0 投票
1 回答
1105 浏览

javascript - 如何在 mongodb shell 中使用闭包?

我对如何在 mongodb shell 中使用闭包有点困惑。

我想创建一个我可以在开发过程中专门使用的功能,以通过它的一部分快速查找文档_id

该函数应返回一个$where进行必要匹配的选择器。
我想这样写:

但是当我尝试它时,我收到以下错误:

手动调用$where似乎确实很奇怪:

我只能将其视为使其工作的解决方案,但这显然很糟糕。
澄清一下:这种方法new Function效果很好,但我不喜欢它,因为上述方法也应该有效。

  • 为什么我的闭包不起作用,闭包在 mongodb shell 中起作用吗?
  • 额外问题:我可以在用户配置文件的某处注册此功能以自动加载吗?