Моя коллекция одежды mongo. Существует два типа продуктов: дочерний и родительский. Родительский продукт содержит массив своего дочернего элемента в качестве ссылки.MongoDB - как присоединиться к родительским и дочерним продуктам по ссылке
использования:
use mydb;
child1 = {
_id: 1,
name: "Child 1",
is_child: true,
is_parent: false,
children : []
}
child2 = {
_id: 2,
name: "Child 2",
is_child: true,
is_parent: false,
children : []
}
parent = {
_id: 3,
name: "Parent product",
is_child: false,
is_parent: true,
children : [1, 2]
}
db.product.insert([child1, child2, parent]);
И я ищу для любого запроса возвращающегося
{
_id: 3,
name: "Parent product",
is_child: false,
is_parent: true,
children: [
{
_id: 1,
name: "Child 1",
is_child: true,
is_parent: false,
children : []
},
{
_id: 2,
name: "Child 2",
is_child: true,
is_parent: false,
children : []
}
]
}
Я новичок в MongoDB, но я угадать использование карты-свертка может решить проблему , Может кто-нибудь советовать? Thx
Вы можете сделать это на программном уровне, используя два округления. Такие драйверы, как Mongoose (http://mongoosejs.com/), предлагают это из коробки. Так называемое «заселение». – Prinzhorn
Есть ли способ, как это сделать по запросу? – Jaro
Если вы спросите об одной команде 'find' или' findOne', ответ будет отрицательным. – zero323