Drivrutinen genererar endast Id-fältet åt dig när fälten identifieras som _id av en samling. I ditt fall, Bar är inbäddad i Foo dokument.
Därför är det inte vettigt för Bar att ha ett autogenererat ID-fält.
I ditt exempel finns det egentligen ingen anledning till Bar att ha ett unikt _id . När du frågar samlingen kommer du att fråga baserat på _id av Foo och du kommer att ha Bar objekt tillgängliga i svaret.
Detta är definitivt avsett beteende.