我不确定我是否正在正确地构建AND
查询OR
。当我查询匹配标签时,我得到了一些匹配的视频。但是当我尝试第二个查询时(以确保视频与自身不相关),查询会返回所有视频。
更新:我希望返回至少有一个与所讨论标签相同的视频video
,但返回的列表不包括video
. 基本上是一个related_videos 功能。
from solveforx.lib.moonshots import Video
from google.appengine.ext import ndb
video = Video.query().get()
tags = video.tags or []
for tag in tags:
print Video.query(Video.tags == tag).count() # returns 1
print "-------"
print Video.query(Video.tags == tag and Video.key != video.key) # returns total videos - 1
print "========"
# also tried this
# print Video.query(Video.tags == tag, ndb.AND(Video.key != moonshot.key)).count() # returns 0
# print Video.query(ndb.AND(ndb.AND(Video.tags == tag), ndb.AND(Video.key != video.key) )).count()
查看有关此的文档,但不确定操作员的工作方式。