mongoengine使用管道查找两个数组之间的匹配

2024-09-28 03:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要使用mongoengine对MongoDB进行查询

我有一个包含组列表的文档: groups = ['groupa', 'groupb'...]

此外,我还有其他组的列表my_groups= ['groupc', 'groupd', 'groupc'...]

我们想要的结果是找到在这些数组之间有任何匹配的所有文档。在

我看到了这个question,但它不是通过mongoengine

我怎样才能通过mongoengine来实现呢?在


Tags: 文档列表mymongodb数组mongoenginegroupsquestion
1条回答
网友
1楼 · 发布于 2024-09-28 03:23:32

将纯MongoDB查询应用于Mongoengine非常容易。假设您的集合名为Foo,字段名为groups,与之比较的列表被分配给变量my_groups,来自{a1}的查询如下所示

Foo.objects.aggregate(*[ 
             { "$match": { "groups.1": { "$exists": True } } }, 
             { "$redact": { 
                "$cond": [ 
                     { "$gte": [ 
                         { "$size": { "$setIntersection": [ "$groups", my_groups ] } }, 
                         1
                     ]},
                     "$$KEEP", 
                     "$$PRUNE" 
                 ]
             }}
         ])

请注意list参数前面的星号。在

相关问题 更多 >

    热门问题