Es ist weniger ein Fehler als ein Fall von unerfüllten Erwartungen. Nur der _id der obersten Ebene wird automatisch ein Wert zugewiesen. Allen eingebetteten _ids sollten vom Clientcode Werte zugewiesen werden (verwenden Sie ObjectId.GenerateNewId). Es ist auch möglich, dass Sie nicht einmal eine ObjectId in der Address-Klasse benötigen (was ist der Zweck davon?).