Studio3T/Mongo 中的奇怪行为

Strange behavior in Studio3T/Mongo

正如标题所暗示的,我发现了一个相当奇怪的行为,我不确定将其归因于 Studio3T 还是 MongoDB。

我有一个collection包含简单文档,如下:

Example of a document in the collection

每当我使用查询生成器执行查询时,一切都按预期进行。但是,当我使用 IntelliShell 或聚合 AND 执行此操作时,如果此类查询基于 StudyID 字段,则无论查询如何,都不会 returned。

例如下面的两个查询return,分别是一个空列表和没有文档。

db.Cortisol.distinct("StudyID")
db.Cortisol.find({},{"StudyID" : 1})

而以下非常相似的查询 return 是文档,正如预期的那样。

db.Cortisol.find({},{"ExamID" : 1})

如您所见,查询是正确的,我没有拼错任何东西,所以有人对这种奇怪的行为有可能的解释吗?

我想知道您的字段 "StudyID" 是否包含一些奇怪的(不可见的)unicode 字符。这可以解释为什么将字段拖到查询构建器中有效(因为查询构建器使用完全相同的字符串)而键入 S-t-u-d-y-I-D 不起作用。 当您 运行 一个空查询并看到返回 StudyID 的文档时,您能否将 StudyID 字段的字段名称复制到剪贴板,然后当您在 IntelliShell 中键入查询时粘贴 StudyID 名称?