В следующем блоге, есть пример:MongoDB схемы Дизайн Продукты с детьми Продукция
http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1
где продукт может иметь множество частей db.parts.findOne() { _id : ObjectID('AAAA'), partno : '123-aff-456', name : '#4 grommet', qty: 94, cost: 0.94, price: 3.99 }
db.products.findOne() { name : 'left-handed smoke shifter', manufacturer : 'Acme Corp', catalog_number: 1234, parts : [ // array of references to Part documents ObjectID('AAAA'), // reference to the #4 grommet above ObjectID('F17C'), // reference to a different Part ObjectID('D2AA'), // etc ]
Я имею в виду делать что-то подобное, за исключением того, что Продукт может быть изготовлен из многих Продуктов (т. е. у них будет одна и та же схема). Воздействие на окружающую среду Продукта будет тогда суммой воздействия на окружающую среду детей. Эти дети, в свою очередь, могут быть их собственным родительским продуктом для других детских продуктов, таких как дерево.
Чтобы сделать проект для обновлений менее сложным, если воздействие на окружающую среду ребенка изменилось, оно не будет автоматически распространять изменение цепи. Родитель может видеть из временной метки обновления для детей, что он является более поздним, и имеет возможность обновлять свои поля с помощью пересчета через веб-интерфейс.
Я новичок в MongoDB, поэтому просто хочу запустить этот проект схемы сообществом, чтобы узнать, есть ли какие-либо потенциальные подводные камни, чтобы следить за этим подходом. Благодарю.
Btw, если ваши номера деталей уникальны по частям (обычно это такие вещи), вы можете просто сохранить их как значение '_id' или сохранить' {"partno": "123-aff-456"} 'as значение '_id'. – PaulMcG
Пожалуйста, сообщите нам, что вы хотите точно моделировать. Может быть, тогда мы сможем помочь вам больше. –
Фрэнк, вы все еще ищете ответ или предоставили достаточное количество? –