0

我正在为 HR 服务构建 REST Api,需要实现与 Flask 和 Pymongo 一起使用的过滤器。我有一些过滤器,例如技术、经验、城市、框架等。我要做的是首先按技术过滤,如果在此过程中进一步满足某些条件,则按另一个条件过滤其查询。它有点像 Django 查询集,您可以进一步缩小范围。

但如果我能做到以下几点,我在 Mongo 文档上找不到它:

collection = db.my_collection.find({technologies: 'Python'})
narrowed_collection = collection.filter({framework: 'Flask'})

我知道我可以在一个地方运行第二个查询,但就我而言,如果满足某些条件,我发现这样做会更有效。至少,我肯定会在 Django 中这样做。

有什么解决办法吗?

编辑:

这是一份文件的副本:

{
"_id" : ObjectId("5d965a8b7ae4614204182cc2"),
    "Name" : "John Doe",
    "Rating" : "9870.31",
    "Technologies" : [ 
        "Java", 
        "HTML", 
        "Python", 
        "PHP", 
        "JavaScript", 
        "CSS"
    ],
    "About" : "Flask, Django, React, Angular",
    "Location": "London, UK",
    "Experience"
}

假设我按技术、经验和位置进行过滤。但我也在寻找一个 Flask 框架,它“很高兴拥有”一个 React。这意味着我们不仅需要同时拥有它们(Flask 和 React)的人,而且首先我们需要拥有其中两个的人,然后是只有 Flask 的人。

假设我们按前 3 个字段过滤并从 100k 集合中得到 5k 项。接下来,为了实现这两个框架搜索,我正在运行一个复杂的聚合,所以我觉得在 5k 结果上运行聚合比在 100k 上运行聚合性能要好得多。

4

0 回答 0