Il driver genererà per te il campo ID solo quando i campi sono identificati come _id di una collezione. Nel tuo caso, Bar è incorporato all'interno di Foo documento.
Pertanto, non ha senso per Bar per avere un campo ID generato automaticamente.
Nel tuo esempio, non c'è davvero alcun motivo per Bar avere un _id univoco . Quando esegui una query sulla raccolta, esegui una query in base a _id di Foo e avrai Bar oggetti disponibili nella risposta.
Questo è sicuramente un comportamento previsto.