ObjectIds são objetos, portanto, um teste de igualdade ==padrão está comparando as referências para igualdade, não os valores de id contidos. A maneira correta de comparar seus valores é usar ObjectId.equals como:
obj1.equals(obj2)
obj1.equals(obj2)