python - mongodb 仅显示列表中的特定值

标签 python regex mongodb

我有一个日期列表,我正在执行 $regex 来查找这些值,但我只想显示查询的值。

集合中存储的数据:

{
    "Pid" : "5652f92761be0b14889d9854",
    "Registration" : "TN 56 HD 6766",
    "Booked" : [
            "1-10-2015",
            "6-10-2015",
            "11-12-2015",
            "16-12-2015",
            "10-12-2015"
    ],
    "Vid" : "56543ed261be0b0a60a896c9"
}

我是这样搜索的

db.calendar2.find({"Pid" : "5652f92761be0b14889d9854","Registration" : "TN 56 HD 6766","Booked" : {"$regex": "10-2015"}})

来 self 的 python 程序。

我得到的输出。

{
    "Pid" : "5652f92761be0b14889d9854",
    "Registration" : "TN 56 HD 6766",
    "Booked" : [
            "1-10-2015",
            "6-10-2015",
            "11-12-2015",
            "16-12-2015",
            "10-12-2015"
    ],
    "Vid" : "56543ed261be0b0a60a896c9"
}

期望的输出

{
    "Pid" : "5652f92761be0b14889d9854",
    "Registration" : "TN 56 HD 6766",
    "Booked" : [
            "1-10-2015",
            "6-10-2015"
    ],
    "Vid" : "56543ed261be0b0a60a896c9"
}

谁能指导我

编辑 我已经尝试过,但没有得到输出,我只想显示与正则表达式条件匹配的特定日期集

最佳答案

这是使用聚合框架实现您想要的目标的一种方法:

-展开 Booked 数组

-匹配你想要的文档(以及已经展开的数组元素)

-通过过滤器将结果重新组合在一起,并将展开的数组元素推回 Booked

-投影结果以从组对象中解压缩值

db.calendar2.aggregate([{
    $unwind: "$Booked"
}, {
    $match: {
        "Pid": "5652f92761be0b14889d9854",
        "Registration": "TN 56 HD 6766",
        "Vid": "56543ed261be0b0a60a896c9",
        "Booked": /10-2015/
    }
}, {
    $group: {
        _id: {
            Pid: "$Pid",
            Registration: "$Registration",
            Vid: "$Vid"
        },
        Booked: {
            $push: "$Booked"
        }
    }
}, {
    $project: {
        Pid: "$_id.Pid",
        Registration: "$_id.Registration",
        Vid: "$_id.Vid",
        Booked: 1,
        _id: 0
    }
}]);

关于python - mongodb 仅显示列表中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34329729/

相关文章:

python - 试图将四阶回归多项式拟合到散点图,但我得到了一个奇怪的结果

java - 使用正则表达式的搜索功能出现问题

regex - perl正则表达式删除破折号

来自空数组的 MongoDB 组不返回任何内容

node.js - MongoDb 按日期分组并分页

python - Pandas :存储 "row count"

python - 在 django 中设置 bool 请求 header 的格式

mongodb - 空数组阻止文档出现在查询中

python - 解析时获取空列表

javascript - IE7 正则表达式问题 - 适用于所有浏览器的正则表达式在 ie7 中不起作用