1
このjavascriptの例をPythonに移植したいと思います。ここでノードの子孫を取得するPymongoツリー構造
は、すべてのノードの子孫を取得元の例である:
var descendants=[]
var stack=[];
var item = db.categoriesPCO.findOne({_id:"Cell_Phones_and_Accessories"});
stack.push(item);
while (stack.length>0){
var currentnode = stack.pop();
var children = db.categoriesPCO.find({parent:currentnode._id});
while(true === children.hasNext()) {
var child = children.next();
descendants.push(child._id);
stack.push(child);
}
}
descendants.join(",")
//Cell_Phones_and_Smartphones,Headsets,Batteries,Cables_And_Adapters,Nokia,Samsung,Apple,HTC,Vyacheslav
Pythonのバージョンは、これに似ています:
def descendants():
descendants = []
stack = []
item = db.electronics.find_one({'_id': "Cell_Phones_and_Accessories"})
stack.append(item)
while(len(stack) > 0):
currentNode = stack.pop()
children = db.electronics.find({'parent': currentNode["_id"] })
while(next(children, None)):
child = next(children, None)
descendants.append(child['_id'])
stack.append(child)
print(descendants)
しかし、あなたは子孫の一部である出力から参照してくださいねなど行方不明
[ '電池'、 'Cell_Phones_and_Smartphones'、 'サムスン'、 'HTC']