MongoDB получить предметы не имеют детей
Существует древовидная структура с родительской ссылкой (так называемый список смежности). Пример сбора данных MongoDB приведен ниже:
/* 1 */
{
"id" : 1,
"name": "Digital Cameras",
"url" : "digital-cameras",
}
/* 2 */
{
"id" : 2,
"name": "Nikon",
"url" : "nikon",
"parent_url": "digital-cameras"
}
/* 3 */
{
"id" : 3,
"name": "Canon",
"url" : "canon",
"parent_url": "digital-cameras"
}
/* 4 */
{
"id" : 4,
"name": "Film cameras",
"url" : "film-cameras"
}
Итак, древовидная структура ниже:
Digital Cameras
|__Nikon
|__Canon
Film Cameras
Как найти предметы, у которых нет детей (иначе листья в терминологии деревьев)? В моем примере результат должен указывать на Nikon
, Canon
а также Film Cameras
групп.
У меня есть запрос, чтобы найти дочерние элементы:
self.db.groups.find({'parent_url': {'$exists': True}})
Поэтому для каждой записи A моего необходимого набора нет записи B, где B.parent_url = A.url.
Мой стек Python 2.7, mongodb 2.6.5, pymongo 3.4.