我需要使用mongoengine
我有一个包含组列表的文档:
groups = ['groupa', 'groupb'...]
此外,我还有其他群组my_groups= ['groupc', 'groupd', 'groupc'...]
想要的结果是找到这些数组之间匹配的所有文档。
我看到了question,但不是通过mongoengine
我如何通过mongoengine
?
答案 0 :(得分:2)
将纯MongoDB查询调整为Mongoengine非常容易。假设您的集合名为Foo
,则字段的名称为groups
,并且您与之比较的列表已分配给变量my_groups
,mentioned answer的查询将如下所示< / p>
Foo.objects.aggregate(*[
{ "$match": { "groups.1": { "$exists": True } } },
{ "$redact": {
"$cond": [
{ "$gte": [
{ "$size": { "$setIntersection": [ "$groups", my_groups ] } },
1
]},
"$$KEEP",
"$$PRUNE"
]
}}
])
请注意列表参数前面的星号。