0

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

我有一个包含简单文档的集合,如下所示:

集合中的文档示例

每当我使用查询生成器执行查询时,一切都按预期工作。但是,当我使用 IntelliShell 或 Aggregate 执行此操作时如果此类查询基于字段 StudyID,则无论查询如何,都不会返回任何文档。

例如,以下两个查询分别返回一个空列表和没有文档。

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

虽然以下非常相似的查询按预期返回了文档。

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

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

4

1 回答 1

1

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

于 2018-01-12T15:11:17.607 回答