C'est assez simple :
- Si vous avez déclaré le champ _id explicitement dans le schéma, vous devez l'initialiser explicitement
- Si vous ne l'avez pas déclaré dans le schéma, MongoDB le déclarera et l'initialisera.
Ce que vous ne pouvez pas faire, c'est l'avoir dans le schéma mais pas l'initialiser. Il lancera l'erreur dont vous parlez