Вы должны сравнить значение _id с экземпляром BinData (а не со строкой).К сожалению, конструктор BinData принимает строку Base64 вместо шестнадцатеричной строки.
В вашем значении GUID отсутствуют две шестнадцатеричные цифры в конце, поэтому для целей этого примера я буду считать, что они равны "00".Следующие значения эквивалентны:
hex: "E3E45566-AFE4-A564-7876-AEFF6745FF00" (игнорируя тире)
base64: "ZlXk4 + SvZKV4dq7 / Z0X / AA =="
Таким образом, ваш запрос должен быть:
> db.person.find ({_ id: новые BinData (3," ZlXk4 + SvZKV4dq7 / Z0X / AA ==")})
Я предполагаю, что двоичный подтип был правильно установлен на 3. Если нет, какой драйвер использовался для создания данных?