2017-09-07 11 views
1

나는python eve hook, 조건을 만족할 때이 문서를 저장하지 않으려면 어떻게해야합니까?

def before_insert(docs): 
    for doc in docs: 
     if doc['field'] == 'value': 
      '''Do not save this document''' 

app.on_insert_resource_name += before_insert 

조건을 만족하면 내가이 문서를 저장하지 않도록해야 같은 후크 기능이? 이 값은 데이터베이스에서 얻어진 사실

def before_insert(docs): 
    docs = [doc for doc in docs if not doc['field'] == 'value'] 

답변

1

이 솔루션을 시도 할 수 있습니다.

+1

그러나 반복되는 구조를 수정하는 것이 좋습니다. 이 경우 모든 후속 요소의 색인은 1 씩 감소합니다. 제거 할 색인 목록을 작성한 다음 최종적으로 가장 높은 색인으로 시작하는 색인을 작성하여이 문제를 완화 할 수 있습니다. 'for i in reversed (indices) : del docs [i]' – holdenweb

+0

맞습니다. –

+0

@holdenweb PO는 간단한 논리를 사용하므로 답을 다시 쓰게됩니다. 의견을 주셔서 감사합니다. –

1

@holdenweb, 당신의 의견에 대한

for doc in docs: 
    res = db.collection.find_one ({"field": doc['field']}) 
    if res: 
     ''' do not save this doc, 
     i tried doc.clear() and del doc here ,but it not work. 
      what shoud i do?''' 

감사 : 사용 abort()를 제외하고 .Thanks는