2010-12-10 67 views
0

我从关系数据库背景来到Appengine,并且正在考虑如何最好地完成此任务。appengine相当于一个“NOT IN”查询

基本上我有一个对象表,并希望检索一个用户从未见过的对。

比如在MySQL中最直接的可能是像

SELECT * 
FROM object_pairs 
WHERE id NOT IN(
    SELECT object_pair_id 
    FROM user_object_pairs 
    WHERE user_id = :user_id 
) 

理想我也想能够检索从可能的结果随机(或半随机的)对。

任何建议表示赞赏。

谢谢

回答

1

有没有简单的方法来做到这一点。您建议的SQL查询将由大多数SQL数据库执行,首先构建ID的内存列表,然后对表进行线性扫描,仅返回不在ID列表中的行。您可以在App Engine中执行相同操作:获取用户的“查看列表”,为所有实体执行查询,并跳过他以前看到的那些查询。