Странное поведение в Studio3T/Mongo

Как видно из заголовка, я обнаружил довольно странное поведение, которое я не уверен приписать Studio3T или MongoDB.

У меня есть коллекция, содержащая простые документы, а именно:

Пример документа в коллекции

Всякий раз, когда я выполняю запрос, используя конструктор запросов, все работает как положено. Однако, когда я делаю это, используя IntelliShell или Aggregate AND, если такой запрос основан на поле StudyID, документ не возвращается, независимо от запроса.

Например, два следующих запроса возвращают соответственно пустой список и никаких документов.

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

Пока следующий очень похожий запрос возвращает документы, как и ожидалось.

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

Как вы видите, запросы верны, я ничего не написал, так у кого-нибудь есть возможное объяснение такого странного поведения?

1 ответ

Решение

Интересно, содержит ли ваше поле "StudyID" какие-то странные (невидимые) символы юникода. Это объясняет, почему перетаскивание поля в построитель запросов работает (потому что построитель запросов использует точно такую ​​же строку), а ввод StudyID - нет. Когда вы запускаете пустой запрос и видите документы с возвращенным StudyID, вы можете скопировать имя поля вашего StudyID в буфер обмена, а затем, когда вы вводите запрос в IntelliShell, вставить имя StudyID?

Другие вопросы по тегам