1

を与えるこんにちは、私はこれらのモデルを持っている:私のでNDBクエリ予期しない結果に

registration_ids = models.RegDevice.query(\ 
     models.RegDevice.comune_key==comune_key,\ 
     models.RegDevice.tags == models.TagProprieta(tag=tag, stato='1')\ 
     ).fetch() 

class TagProprieta(ndb.Model): 
    tag = ndb.StringProperty() 
    stato = ndb.StringProperty() 

class RegDevice(ndb.Model): 
    comune_key = ndb.KeyProperty() 
    reg_id = ndb.StringProperty() 
    tags = ndb.StructuredProperty(TagProprieta, repeated=True) 
    .... 

このクエリは、期待される結果(一部RegDeviceオブジェクトとリスト)を返しますフィールドreg_idだけが必要な場合は、最後の行を次のように変更しました。

.fetch(projection=[models.RegDevice.reg_id]) 

結果は空ですIST:[]

私が持っていたとにより、NDBの限界にエラー場合、私は完全に罰金だろうが、それと空のリストがをcorretされていない私には思えます。 somethigが間違っていますか?以前のクエリを使用してメモリ内の結果を処理する唯一の機会ですか? THX

答えて

0

はこれを試してみてください:

registration_ids = models.RegDevice.query(\ 
    models.RegDevice.comune_key==comune_key,\ 
    models.RegDevice.tags == models.TagProprieta(tag=tag, stato='1'),\ 
    projection=[models.RegDevice.reg_id] 
    ).fetch() 
+0

しようと試み、同じ結果以前のようにそれを設定し、手動で試してみてください:[]が、どのように投影 'についてTHX – chairam

+0

= [RegDevice.reg_id]'? – GAEfan

+0

または 'projection = [" reg_id "]'? – GAEfan