Mongo引擎Q类'OR'

时间:2013-11-05 07:12:27

标签: python django mongoengine django-q

我有一个用户的objectID列表

friends = ['someID', 'someID']

我编写了一个查询集来获取与朋友列表中的这些objectID相关联的用户。

u = UserAccount.objects.filter(Q(id = friends[0]) or Q(id = friends[1]))

现在u.to_json() 虽然对象ID都存在于数据库

中,但只输出一个UserAccount对象

所以我通过分离查询来检查它,现在每个查询集都按预期返回了一个UserAccount对象。

u = UserAccount.objects.filter(Q(id = friends[0]))
v = UserAccount.objects.filter(Q(id = friends[1]))

可能出现什么问题? “或”是否有问题?

2 个答案:

答案 0 :(得分:2)

修正:

UserAccount.objects.filter(Q(id = friends[0]) | Q(id = friends[1]))

答案 1 :(得分:2)

要匹配列表中的任何内容,您可以使用in query operator

UserAccount.objects.filter(id__in=friends)