2010-07-26 9 views
7

que tienen un modelo que se parece a esto:¿Está buscando entidades con propiedades faltantes en el almacén de aplicaciones del motor de aplicaciones?

class Example (db.Model) : 
row_num = db.IntegerProperty(required=True) 
updated = db.IntegerProperty() 
... 
... 

Ahora en que almacenan valores, puede que no llene el valor de la propiedad actualizado cada vez, lo que implica que en algunas entidades puede no existir.

Quiero construir una consulta de almacén de datos para que pueda obtener todas las entidades de tipo Ejemplo que no tengan la propiedad actualizada.

¿Cómo hago esto?

p.s. Sé que puedo establecer un valor predeterminado y luego consultar sobre él. Pero el problema es que tengo más de 3 millones de entidades y las actualizaciones estarán marcadas solo para el 1% de ellas, así que no quiero desperdiciar tanto espacio en el almacén de datos estableciendo el resto en 0.

Respuesta

7

En GQL, objetos que no tiene un valor para una propiedad que no pueda ser devuelto por consultas en esa propiedad, por lo que lo que está solicitando es imposible sin un valor predeterminado.

Referencia: sección titulada "Las entidades sin una propiedad filtrada nunca son devueltas por una consulta" en this page.

+0

por lo que está diciendo que no hay solución posible? – demos

+1

Correcto, porque todo lo que intente hacer que haga referencia al campo que no existe, usará un índice en ese campo, lo que dará como resultado la omisión de cualquier objeto que no tenga un valor para ese campo. – Amber

+1

La solución alternativa sería proporcionar un valor predeterminado para la propiedad actualizada y consultar ese valor. –

Cuestiones relacionadas