存在具有父引用(也称为邻接列表)的树结构 . 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 .