В CitySchema должен быть объявлен массив regions: [{ type: ObjectId, ref: ‘city’ }]
Вы создаете город с пустым массивом regions
После чего вы создаете новый регион, берете его айдишку и выполняете запрос вида:
City.updateOne({ _id: cityId }, { $push: { regions: regionId } })
Тем самым добавляя в массив regions нужного вам города новый регион
Потом можно сделать City.find({}).populate(‘regions’)
Получилось примерно вот так:
const region = await Region.create({ name });
await City.updateOne({ _id: cityId }, { $push: { regions: region._id } });
Но в регионе получается лишний ref на city, потому что я его не записываю