Per impostazione predefinita, tutte le raccolte regolari inseriscono automaticamente un campo _id se è assente.
Tuttavia, questo comportamento può essere modificato durante la creazione della raccolta, impostando esplicitamente il parametro autoIndexId su false.
> db.createCollection("noautoid", { autoIndexId: false })
{ "ok" : 1 }
Quindi puoi inserire documenti senza campo _id. Ma alcuni driver, come quello javascript (e quindi la console mongo), aggiungono il campo _id da soli. Nella console mongo, puoi farlo:
> db.noautoid._mongo.insert(db.noautoid._fullName, {name: "Jack"})
> db.noautoid.find()
{ "name" : "Jack" }
Ulteriori informazioni sul campo autoIndexId sono disponibili nella documentazione di MongoDB. Questa pagina riguarda le raccolte limitate, ma il campo autoIndexId è comune sia alle raccolte normali che a quelle limitate.