Hey @Abdi_Mussa,
Welcome to the MongoDB Community Forums! 
A general rule of thumb while doing schema design in MongoDB is that you should design your database in a way that the most common queries can be satisfied by querying a single collection, even when this means that you will have some redundancy in your database. Thus, it may be beneficial to work from the required queries first, making it as simple as possible, and let the schema design follow the query pattern.
Using discriminators (as you mentioned) and embedding/referencing techniques would be a good approach. You can also use mgeneratejs to create sample documents quickly in any number, so the design can be tested easily.
Regarding mobile accessories having different subtypes like Chargers, Covers, and Others, one approach can be to create separate schemas for each subtype and embed them within the MobileAccessoriesSchema, ie, something like this:
const MobileAccessoriesSchema = new mongoose.Schema({
type: String,
manufacturer: String,
model: String,
// Other fields specific to Mobile Accessories
}, { discriminatorKey: 'accessoryType' });
const ChargerSchema = new mongoose.Schema({
chargingSpeed: String,
});
const CoverSchema = new mongoose.Schema({
color: String,
});
const OtherAccessorySchema = new mongoose.Schema({
// Additional fields specific to Other Mobile Accessories
});
// Embed the subtype schemas within the MobileAccessoriesSchema
MobileAccessoriesSchema.add({
charger: ChargerSchema,
cover: CoverSchema,
otherAccessory: OtherAccessorySchema,
});
// Create a mobile accessory of type Charger
const chargerAccessory = new MobileAccessories({
name: 'Mobile Accessory',
manufacturer: 'Manufacturer 2',
model: 'Model 2',
accessoryType: 'Charger',
charger: {
chargingSpeed: 'Fast',
},
});
chargerAccessory.save();
Please note that this is just a suggestion and that the actual schema should depend on your queries, hence I would suggest you work on your queries as I stated above.
Hope this helps. Feel free to reach out for anything else as well.
Regards,
Satyam