Ağaç yapısına sahip, Model Tree Structures with Parent References deseninin kullanıldığı MongoDB'de belge listesi var. 'Name' özelliği göz önüne alındığında, ata listesi (köküne kadar) döndüren tek bir toplama sorgusu istiyorum.MongoDB'deki bir koleksiyondaki özyinelikli arama
Yapısı:
{
'_id': '1',
'name': 'A',
'parent': '',
},
{
'_id': '2',
'name': 'B',
'parent': 'A',
},
{
'_id': '3',
'name': 'C',
'parent': 'B',
},
{
'_id': '4',
'name': 'D',
'parent': 'C',
}
Toplama sonucu: (göz önüne alındığında, name = 'D')
{
'_id': '4',
'name': 'D',
'ancestors': [{name:'C'}, {name:'B'}, {name:'A'}]
}
Note:
Şimdi belge yapısını değiştiremez. Birçok soruna neden olur. Model Tree Structures with an Array of Ancestors'u kullanmayı öneren birçok çözüm gördüm. Ama şimdi kullanamam. Tek bir toplama sorgusu kullanarak yukarıdaki kalıpla elde etmenin herhangi bir yolu var mı? Teşekkürler
Neden '_id' dizesidir:
pushAncesstors
işlevi değişecektir? – styvane@Styvane Sadece bir örnek. Asıl doküman ObjectId – RaR
@RaR'a sahip olacak. Styvane'nin sizin için işe yaramayan bir cevabı var mı? – JohnnyHK