2

У меня есть мода ndb, у которых есть свойство повторения строк. Я пытаюсь получить все объекты, у которых есть пустое значение. Но NDB-запрос возвращается пустым.NDB Query для пустой строки в повторяющихся StringProperty

class A(ndb.model): 
    name = ndb.StringProperty() 
    values = ndb.StringProperty(repeated=True) 

a1 = A() 
a1.name = "T1" 
a1.values = ['V1', 'V2'] 
a1.put() 

a2 = A() 
a2.name = "T2" 
a2.values = [] 
a2.put() 

result = A.query(A.values=="") # Return empty 
result = A.query(A.values==[]) # BadValueError: Expected string, got [] 

for each in result: 
    print each.name 

Как запросить объекты, у которых есть пустые/нет значения?

ответ

2

Я думаю, что вы должны будете основывать запрос на другое поле, который содержит количество значений, например,

num_values = ndb.IntegerProperty(indexed=True) 

Вы должны обновить этот номер каждый раз, когда вы обновляете value поля. Тогда вы можете запросить так:

result = A.query(A.num_values==0) 

Это похоже на другой вопрос: NDB: Sort query results

 Смежные вопросы

  • Нет связанных вопросов^_^