Google App Engine ndb 按 StringProperty 的长度排序
Google App Engine ndb order by length of StringProperty
是否可以按字符串的长度对查询进行排序属性?我试过这个:
User.query(User.facebook_id = fb_id).order(-len(str(User.name))).fetch(10)
但它向我显示错误:TypeError: order() expects a 属性 or query Order;
您或许可以使用 Computed Property:
name_len = ndb.ComputedProperty(lambda self: len(self.name))
然后用它进行查询:
User.query(User.facebook_id = fb_id).order(-User.name_len).fetch(10)
如果这不起作用,那么您需要添加一个 IntegerProperty
并将其设置为字符串的长度 (name_len = ndb.IntegerProperty()
)
是否可以按字符串的长度对查询进行排序属性?我试过这个:
User.query(User.facebook_id = fb_id).order(-len(str(User.name))).fetch(10)
但它向我显示错误:TypeError: order() expects a 属性 or query Order;
您或许可以使用 Computed Property:
name_len = ndb.ComputedProperty(lambda self: len(self.name))
然后用它进行查询:
User.query(User.facebook_id = fb_id).order(-User.name_len).fetch(10)
如果这不起作用,那么您需要添加一个 IntegerProperty
并将其设置为字符串的长度 (name_len = ndb.IntegerProperty()
)