<p>如果我应该用不同的方法来解决这个问题,请建议这样做。我正在创建一个基于项目的协作过滤器。我用LinkRating2类填充数据库,对于每个链接,我需要调用1000多个用户并收集他们的评分,以执行计算,然后使用这些计算创建另一个表。所以我需要为一个给定的链接调用1000多个实体。在</p>
<p>例如,假设有1000多个用户被评为“link1”,对于给定的link属性,我需要调用1000多个此类实例。<br/>
我如何完成这个例子?在</p>
<pre><code>class LinkRating2(db.Model):
user = db.StringProperty()
link = db.StringProperty()
rating2 = db.FloatProperty()
query =LinkRating2.all()
link1 = 'link string name'
a = query.filter('link = ', link1)
aa = a.fetch(1000)##how would i get more than 1000 for a given link1 as shown?
##keybased over 1000 in other post example i need method for a subset though not key
class MyModel(db.Expando):
@classmethod
def count_all(cls):
"""
Count *all* of the rows (without maxing out at 1000)
"""
count = 0
query = cls.all().order('__key__')
while count % 1000 == 0:
current_count = query.count()
if current_count == 0:
break
count += current_count
if current_count == 1000:
last_key = query.fetch(1, 999)[0].key()
query = query.filter('__key__ > ', last_key)
return count
</code></pre>