Драйверът ще генерира само полето Id за вас, когато полетата са идентифицирани като _id от колекция. Във вашия случай, Bar е вграден в Foo документ.
Следователно няма смисъл за Bar да имате автоматично генерирано поле за идентификатор.
Във вашия пример наистина няма причина за Bar да има уникален _id . Когато правите заявка към колекцията, ще правите заявки въз основа на _id на Foo и ще имате Bar обекти, налични в отговора.
Това определено е предвидено поведение.