首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同排序选项的复杂访问管理的数据存储模型

具有不同排序选项的复杂访问管理的数据存储模型
EN

Stack Overflow用户
提问于 2016-10-23 08:25:36
回答 1查看 52关注 0票数 0

我有两个数据存储模型,集团&产品。产品分为两类:安全和非安全。每个产品都属于一个组。

我们有三种类型的用户:管理员、普通用户和组成员(用户可以属于多个组)。

管理员用户可以访问所有组。普通用户(不属于任何组)只能访问非安全产品。小组成员可以访问他所属的组的所有产品和他不属于的组的所有非安全产品。

我们需要查询基于数据存储游标的产品列表,每次获取15条记录,结果应该由last_updated_date排序。

对于管理,查询:PRODUCT.query().fetch_page(25, start_cursor=cursor).order(-PRODUCT.last_updated_date)

对于普通用户,查询:PRODUCT.query(PRODUCT.secure=False).fetch_page(25, start_cursor=cursor).order(-PRODUCT.last_updated_date)

对于组成员的查询,我一点也不困惑,它基本上有'IN‘操作符、非相等运算符和last_updated_date上的排序。如何编写查询以检索属于组的用户的结果: G1、G3、G5?

SQL查询可能如下所示

代码语言:javascript
复制
Select * from Product where Group IN ( Select GroupID from User where email='a@a.com')

UNION 

Select * from Product where Secure = No

请帮我写一个用last_updated_date排序的NDB数据存储查询。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-23 13:45:20

试试这个:

代码语言:javascript
复制
group_ids_of_user = ['G1', 'G3', 'G5']
query = Product.query(ndb.OR(Product.secure == False,
                             ndb.AND(Product.secure == True, Product.group.IN(group_ids_of_user))))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40200974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档