我是一位嘗試解決http://docs.mongodb.org/ecosystem/use-cases/category-hierarchy/的PHP開發人員,但我對Python不太瞭解。有關MongoDb類別層次結構用例的一些問題
我的第一個問題:
for cat in db.categories.find(
{'ancestors._id': bop_id},
{'parent_id': 1}):
build_ancestors_full(cat['_id'], cat['parent_id'])
哪裏 'PARENT_ID' 從何而來?這不是假設只是'父'嗎?
我的第二個問題:
def build_ancestors_full(_id, parent_id):
ancestors = []
while parent_id is not None:
parent = db.categories.find_one(
{'_id': parent_id},
{'parent': 1, 'name': 1, 'slug': 1, 'ancestors':1})
parent_id = parent.pop('parent')
ancestors.append(parent)
db.categories.update(
{'_id': _id},
{'$set': { 'ancestors': ancestors } })
我將不勝感激一個僞解釋(或相當於PHP)這個輔助功能, 主要有以下幾行:
parent_id = parent.pop('parent')
ancestors.append(parent)
謝謝!
UPDATE &答案:在該示例中代碼
兩個錯誤:
首先是 'PARENT_ID'=>應該是 '父'
第二是
{'父':1,'name':1,'slug':1,'ancestors':1})
=>祖先字段應該是_id
我在與功能部分比較麻煩。在這個例子中,從來沒有parent_id的概念,這是我認爲的一個錯字。如果我理解正確,parent.pop('parent')會將父項作爲一個數組與鍵名稱,slu and和祖先一起離開。這裏的祖先關鍵不是被假定爲_id嗎? – Iano
你的例子的一部分我得到:) – Iano
父是Python中的字典,所以parent.pop('父')將從字典中移除父鍵並返回值。 – user602525