Я столкнулся с проблемой, когда я не уверен, какой путь выбрать. Поэтому я спрашиваю это здесь. У меня есть приложение, в котором могут быть продукты и могут быть метаданные для продукта. Эти метаданные можно создавать и удалять из внешнего интерфейса. Итак, скажем, сегодня у каждого продукта есть две метаданные (например, название, цена), а завтра их может быть три, четыре или больше или даже меньше двух. Так что это динамично. Я пытаюсь представить данные следующим образом
Product =
{
"_id": mongo
"Name": string
"Description": string
"BasePrice": number
"CreatedBy": user mongo _id
"CreatedAt": timestamp
"ModifiedAt": timestamp
"MetaData": BSON object (having all the keys from ProductMetadata collection and their values. e.g. {"Category": "table ware", "Material": "oak wood, copper", "Length": 5.6})
}
ProductMetadata =
{
"_id": mongo
"Name": string (e.g. - "Category" or "Material" or "Height")
"Type": string (indicating what kind of value it can hold like string/integer/array. e.g. - "string")
"CreatedAt": timestamp
"ModifiedAt": timestamp
}
Как видите, это чисто динамическая ситуация, поэтому структура на уровне кода, представляющая модель, невозможна.
Моя проблема в том, как мне реализовать такую вещь, используя mgo и Go lang? Если мне нужно использовать отражение, то может ли кто-нибудь указать мне хороший блог/учебник, где я могу получить немного больше информации. Или, если вы считаете, что в подходе к моделированию данных есть фундаментальная проблема, поправьте меня, чтобы это можно было легко реализовать с помощью Go.
В Python реализовать это не составит труда. Я знаю это. Но я смущен реализацией Go.
Пожалуйста помоги.
заранее спасибо