有一个带有父引用(也称为邻接列表)的树结构。 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。