问题标签 [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.

0 投票
2 回答
2656 浏览

php - PHP 和 Mongo:使用自定义 ID 搜索子文档

我在 Mongo 中创建了一个“参数”集合,其结构如下:

我想全力以赴"subtypes"和。我发现在 Mongo shell 中执行此操作的方法是"_id":"id1""type":"type1"

我有两个问题:

  1. 我是否以正确的方式使用 $and(阅读:“我在创建查询”)吗?
  2. 如何正确将此查询解析为 PHP 代码?我迷失了语法:(。

谢谢!

0 投票
1 回答
971 浏览

mongodb - 使用 mongoimport 导出和导入后某些字段的类型发生变化

嗨,提前感谢您的帮助。我无法在其他帖子上找到这个问题或解决方案,如果我错过了,请告诉我。

我的问题是,在导出并导入另一个集合后,我看到一些字段的 $type 值发生了变化。我在环境 A 的集合中有数据,我想将其导出并导入到不同的环境 B。查看环境 A 中的源数据时,所有类型的字段都是正确的 64 位整数($type 18 -来自文档)。但是,一旦将数据导入到环境 B 中,720 个文档中的 5 个的 $type 为 16(32 位整数)。

环境 A 的输出:

使用等效命令从环境 A 导出数据: mongoexport --host my.environment.a.host.com -d myDb -c myCollection -o outputFile.json

使用等效命令将数据导入环境 B: mongoimport --host my.environment.b.host.com -d myDb -c myCollection --file outputFile.json

查看环境 B 中的数据,我看到以下计数/类型:

db.plaAdGroupDoc.count()
0
db.productDoc.count({createTime : {$type : 16}})
5
db.productDoc.count({createTime : {$type : 18}})
715
db.productDoc.count( )
720

我不清楚为什么该字段的类型从导入中发生了变化。而且,为什么只有一小部分字段发生了变化。任何见解将不胜感激。

谢谢!

编辑:已解决(无法在 8 小时内回答问题) 再看一下,似乎导入为 32 位整数($type 16)的 5 个整数的值为 0,而不是大值。这似乎是他们默认使用整数而不是 64 位整数的原因。问题已解决。

希望这对其他人有帮助!

0 投票
1 回答
105 浏览

mongodb - 通过 Mongo Shell 删除非集合嵌入文档

所以我有一个使用大量嵌入式文档的应用程序,这很好。但是我注意到当你show collections在 Mongo shell 中时,一些嵌入的文档没有显示。

通常这不是问题,但是在设置嵌入式文档时,我不小心在其中一个条目中添加了一个空条目。我通常会做这样的事情来删除条目db.collection.remove({_id: ObjectId('<OBJECT_ID>')}),但由于其中一些不是实际的集合,所以我无法这样做。

我也不确定在实际删除文档时如何成功拼接。我可以将它从条目中拼接出来,但我有一种感觉,它会使嵌入的文档漂浮在数据库的某个地方。

任何想法如何做到这一点?

为了让您了解我在说什么,一个条目示例:

0 投票
1 回答
483 浏览

mongodb - 如何判断一个特定的 Mongo 实例是否有活动连接?

我正在升级一个分片集群,并想关闭三个 mongos 实例之一。我保证不会发生新的传入连接,因为我在负载均衡器中禁用了该框。但是,我担心 mongos 实例上的现有连接可能仍然处于活动状态。

我在 Mongo 实例上运行了以下命令:

你对解释结果有什么看法吗?这是正确的命令吗?

0 投票
1 回答
1837 浏览

javascript - 如何从 mongo shell 中的 Date 值创建 ObjectId?

我想在 mongo shell 中创建一个新的 ObjectId,但要在过去创建一个 Date,以便模拟过去创建这个文档。这将与 ObjectId 的getTimestamp()函数相反(即给出一个时间戳,获取一个在调用getTimestamp它时返回该时间戳的 ObjectId)

任何想法如何做到这一点?

0 投票
1 回答
5591 浏览

mongodb - 为什么 MongoDB shell new ISODate(0001-01-01) 返回日期 1901-01-01

在 Windows 上的 MongoDB Shell 中,如果您运行值为

它实际上似乎在寻找

如果您直接在 Mongo Shell 中输入“new ISODate('0001-01-01T00:00:00Z')”,您可以看到此转换正在发生,因为它返回 ISODate("1901-01-01T00:00:00Z")。

奇怪的是,当您通过输入使用“新日期”而不是“新 ISODate”时:

它返回正确的 ISODate("0001-01-01T00:00:00Z")。

两者都应该根据文档返回一个 ISODate并且在我看来应该是相同的。有谁知道他们为什么不这样做以及这是错误还是功能?

0 投票
1 回答
429 浏览

mongodb - mongodb查询以_开头的集合

基本上问题很简单:

如何对以 _ 开头的集合发出查询?

例如,如果我有 2 个集合test_test并且我正在尝试db.test.findOne()并且db._test.findOne()mongoshell一个按预期工作,而第二个告诉我TypeError: db._testhas no properties (shell):1

0 投票
0 回答
1485 浏览

mongo-shell - 从 mongoshell 如何将 utc 日期时间和纪元值作为 utc 日期时间插入 mongodb

尝试对将示例刻度数据加载到 mongo db 进行概念验证,并且刻度存档数据通常在 utc 和 epoch 中,并且需要按原样加载并输出为 utc,而不是本地日期时间。

如何在 mongodb 中插入 utc 日期时间和纪元而不再次转换为 utc 并仅检索与 utc 相同的内容。

相反,它插入了本地 CST 并输出为 CST !

db.equity_ticks.find().pretty()

任何帮助表示赞赏。

0 投票
2 回答
1132 浏览

javascript - mongodb复杂或/和查询

所以我有一个集合来存储事件的开始和结束时间,我希望用户能够通过指定“过滤器”开始和结束时间来查询事件。查询应返回与过滤时间相交的任何事件。我以为我正在正确构建查询,但它没有返回我想要的结果。

示例数据(简化的 mongo 文档来理解,时间是 HHMMSS):

我尝试的查询是(如果我在这里错过了括号,请原谅我,这不是问题):

仅返回三个结果之一。切换 $or 部分的顺序(在开始时间之前查询结束时间)会给我两个结果,但不是全部三个。我似乎记得在应用查询的第二部分之前,对于复合查询,mongo 会丢弃与第一部分不匹配的结果,但我认为 $or 运算符会处理这个问题。有任何想法吗?我的查询不正确,这是在 mongo 中查询的限制吗?

0 投票
1 回答
280 浏览

mongo-shell - 无法在 Mongo Shell 中的 find() 方法中使用变量作为字段名称来查找值

我在 mongo shell 中执行了以下命令:

现在,我想使用 find() 查找集合中是否存在“English”的流派,它将返回 0(false) 或 1(true)。

上面的命令返回 1(true),但是当我尝试使用下面提到的变量执行相同的命令时,它返回 0。

可能是什么问题?如何解决这个问题?我没有办法解决这个问题。