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.

0 ответов

Другие вопросы по тегам