AND
でOR
適切にクエリを作成しているかどうかはわかりません。タグに一致するようにクエリすると、一致する動画がいくつか表示されます。しかし、2番目のクエリを試してみると(ビデオがそれ自体に関連していないことを確認するため)、クエリはすべてのビデオを返します。
更新:問題のタグと同じタグが少なくとも1つある動画を返したいのです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()
これに関するドキュメントを見てください。ただし、オペレーターがどのように機能しているかはわかりません。