Вы должны сравнить значение _id с экземпляром BinData (не против строки). К сожалению, конструктор BinData берет строку Base64 вместо шестнадцатеричной строки.
В вашем значении GUID отсутствуют два шестнадцатеричных цифры в конце, поэтому для целей этого примера я предполагаю, что они "00". Следующие значения эквивалентны:
Вы можете использовать следующую функцию js перед своим запросом следующим образом:
function LUUID(uuid) {
var hex = uuid.replace(/[{}-]/g, ""); // removes extra characters
return new UUID(hex); //creates new UUID
}
db.person.find({"_id" : LUUID("E3E45566-AFE4-A564-7876-AEFF6745FF"});
Вы можете сохранить функцию в файле .js и загрузить ее или открыть ее перед тем, как сделать свой запрос, и если вы скопируете значение из своих результатов, вы должны переименовать эту функцию с помощью: