【问题标题】:How to combine $in and $regex in mongoDB?如何在 mongoDB 中结合 $in 和 $regex?
【发布时间】:2014-01-14 18:53:48
【问题描述】:

我有一个包含多个文档的集合(比如 Employees)。每个文档都有以下字段-

{
    "name":"John",
    "designation":"Product manager",
    "departmentID":['abpqr','def']
}
{
    "name":"David",
    "designation":"Senior s/w Engg",
    "departmentID":['abc','lmn']
}
{
    "name":"Mathew",
    "designation":"ODC head",
    "departmentID":['abpyz','xyz']
}

现在我想要一个 mongo 查询来获取其部门 ID 以“abp”开头的员工列表。它应该类似于-
db.Employees.find({departmentID: {$in: {$regex:'^abp'}}})

是否可以通过使用单个查询来获取它?如果不是,那么获得结果的替代方法是什么。我正在使用 pymongo,我期待的结果是-

{
    "name":"John",
    "designation":"Product manager",
    "departmentID":['abpqr','def']
},
{
    "name":"Mathew",
    "designation":"ODC head",
    "departmentID":['abpyz','xyz']
}

【问题讨论】:

    标签: python mongodb python-2.7 pymongo


    【解决方案1】:

    我认为您不需要 $in 运算符来执行只有一个条件的查询。

    db.Employees.find({departmentID:{$regex:'^abp'}}) 
    

    它应该可以工作。

    【讨论】:

    • 谢谢瑞本法!它现在可以工作了,我认为 $regex 在列表中搜索的原因也没有提供任何额外的努力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2023-04-02
    • 1970-01-01
    • 2020-04-25
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多