如何使用appengin执行类似SQL连接的操作

2024-09-30 01:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要的东西完全像一个SQL连接,不能与appengine完成,所以我正在寻找一个解决办法。这是查询的排序依据人名.lastname在

downline = User.query(User.sponsor == distributor.key).fetch()
for person in downline
    orders = model.Order.all().filter('distributor_id =' , person.key.id()).filter('created >' , startdate).filter('status =', 'PAID').fetch(999999)

查询获取一个人下的订单,基本上我有两种实体,个人和订单。我应该如何模拟加入persons(User)实体并按person的姓氏对列表进行排序?在SQL中这是一件非常简单的事情,我在appengine中找不到实现它的方法。在

你能告诉我怎么把人名加在记忆里吗?函数不必有很好的性能,因为它是一个报告函数。在


Tags: key函数订单实体idsql排序fetch
3条回答

您可以通过建立父子关系来连接您的Person和Order模型-Person是Order的父对象。这样,就很容易按顺序遍历Person集并选择其顺序。在

另一种方法是使用当前API使用ListPoperty,如果使用NDB将订单链接到用户的,则使用repeated属性

如果您真的不关心性能,而这是针对一次性报告类型的工作,您可能需要考虑使用远程api。在

不要使用id链接模型。这就是SQL方法;您需要采用noSQL方法。在

与其隐式地将Order与具有共享ID的User链接,只需引用Order中的User。在

class User(db.Model):
    # ...

class Order(db.Model):
    distributor = db.ReferenceProperty(User)
    # ...

# e.g.,
order = Order()
order.distributor = User()

然后抓取您的用户,按order()排序,然后使用filter()对相应的User抓取所有相关的{}。在

^{pr2}$

相关问题 更多 >

    热门问题