Da documentação:
O Mongoose atribui a cada um de seus esquemas um getter virtual id por padrão, que retorna o campo _id dos documentos convertido em uma string ou, no caso de ObjectIds, sua hexString.
Então, basicamente, o
id getter retorna uma representação de string do _id do documento (que é adicionado a todos os documentos do MongoDB por padrão e tem um tipo padrão de ObjectId ). Em relação ao que é melhor para referência, isso depende inteiramente do contexto (ou seja, você quer um
ObjectId ou uma string ). Por exemplo, se comparar id 's, a string provavelmente é melhor, pois ObjectId 's não passarão em um teste de igualdade a menos que sejam a mesma instância (independentemente do valor que representam).