def _cond_update_url_info(cond, update_map, inc_map = None, fields = ["_id"]): ''' Notes: fields are just fields from urlRepository, while update_map/inc_map can include metaUrlRepository fields. updates for metaUrlRepository fields just support async mode. ''' fields = make_fields(fields) first_update, second_update = _make_update(update_map, inc_map) if second_update is not None: crawlerMetadb.update_url_info_meta(cond, second_update) if first_update is not None: return db.urlRepository.find_and_modify(cond, first_update, fields=fields) else: return _cond_get_url_info(cond, fields)
def _async_update_url_info(cond, update_map, inc_map): first_update, second_update = _make_update(update_map, inc_map) if first_update is not None: db.urlRepository.update(cond, first_update) if second_update is not None: crawlerMetadb.update_url_info_meta(cond, second_update)