2013-01-02 12 views
5

harita için Google AppEngine NDB Belgeler() belirtmektedir: "Tüm sorgu seçenekleri anahtar kelime argümanlar desteklenir"NDB haritası (geri arama, produces_cursors = True)

Ancak, ben map() üzerinde produces_cursors=True kullanmaya çalıştık ve geri bir imleç almıyorum.

map(callback, pass_batch_into_callback=None, merge_future=None, **q_options) 

Ben tasklet için geri arama ayarlayabilirsiniz olarak map() kullanmak istiyorum.

https://developers.google.com/appengine/docs/python/ndb/queryclass#kwdargs_options

Düzen - kod örneği vermek:

@ndb.tasklet 
def callback(user): 
    statistics = yield ndb.Key(Statistics, user.key.id()).get_async() 
    raise ndb.Return(user, statistics) 

result = User.query().map(callback, produces_cursors=True) 
+0

Kod snippet'i sağlayabilir misiniz? – bossylobster

+0

Elbette @bossylobster, bazı örnek kod ekledim. – Chris

+0

Gerçekten de haklısınız, 'tasklets.MultiFuture' yalnızca bir liste döndürür (http://code.google.com/p/appengine-ndb-experiment/source/browse/ndb/tasklets.py?r=437f5437d9fba7b1c470d56ed2fdf5633d406730#562) ve 'map_query', imleç bilgilerinin hiçbirini tutmaz. – bossylobster

cevap

4

örnek bir yazım hatası var gibi gözüküyor - Doğru bayrağı produce_cursors değil produces_cursors olduğunu.

Ancak imleçler yalnızca map() ile değil, bir yineleyici kullandığınızda kullanılabilir duruma gelir. Eşzamansız örneklere göz atın; Bu biraz iş ama her sonuç için el ile bir görev oluşturmak için kesinlikle kullanabilirsiniz.