0

我用下面的代碼之前:如何跟蹤新添加的記錄到NDB數據存儲?

def add_movie(movie_id, title, picture, description): 
    movie = Movies(
     id=movie_id, 
     title=title, 
     picture=picture, 
     description=description 
     ) 
    movie.put() 

,但它並沒有讓我知道,如果電影中添加新的記錄,或者如果現有的電影是更新。所以,我已經改變了代碼如下:

def add_movie(movie_id, title, picture, description): 
    newly_added = True 
    movie = Movies.get_by_id(movie_id) 
    if movie: 
     newly_added = False 
    movie.id = movie_id 
    movie.title = title 
    movie.picture = picture 
    movie.description = description 
    movie.put() 
    return newly_added 

不過貌似它首先會後,纔將更新它讓電影。所以2請求數據存儲區而不是1.

有沒有其他方法可以做同樣的事情? 或者,我錯了嗎?從性能的角度來看,兩種方法都是一樣的?

回答

3

不,沒有其他辦法。

這會影響性能,因爲額外get請求,但'得到'是相當快and cheap,所以不用擔心它。

2

作爲@Peter說:獲取操作非常便宜,我不會擔心它,但你仍然可以將電影ID存儲在memcache中,並主要檢查它是否存在,如果它存在那麼電影不是新的,如果它不在那裏檢查數據存儲。

相關問題