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).