MongoDB使用聚合创建视图

时间:2019-02-12 10:46:07

标签: mongodb aggregation-framework

*这是我的示例集合,我正在为所有活动状态创建一个视图,我需要用空值替换所有包含单词“ confirm / not”的_subjects.V。

我尝试将$ addfields /项目与过滤器一起使用,它要么删除元素,要么为所有元素添加空值。

基于K和V值的组合,我可能还需要添加更多类似的更改。  *

{
_id: 1,
_status: "active",
_subjects: [{
    "K": "Maths",
    "V": "M010"
},
{
    "K": "Maths",
    "V": "M010"
},
{
    "K": "Maths",
    "V": "M011"
},
{
    "K": "Maths",
    "V": "M020"
},
{
    "K": "Maths",
    "V": "M050"
},
{
    "K": "Science",
    "V": "SC10"
},
{
    "K": "Science",
    "V": "SC99"
},
{
    "K": "Science2",
    "V": "Yet to confirm"
},
{
    "K": "Science2",
    "V": "Not available"
},
{
    "K": "English",
    "V": "EN010"
},
],
_schedule: {
    "start": ISODate("2019-01-01T00:00:00.000+0000"),
    "end": ISODate("2020-01-01T00:00:00.000+0000"),
    _sessions: [{
        "days": ["2019-01-02",
        "2019-01-05"]
    },
    {
        "optional": ["EN010"]
    }]
}
},
{
_id: 2,
_status: "active",
_subjects: [{
    "K": "Maths",
    "V": "M010"
},
{
    "K": "Maths",
    "V": "M030"
},
{
    "K": "Maths",
    "V": "M021"
},
{
    "K": "Maths",
    "V": "Yet to confirm"
},
{
    "K": "Maths",
    "V": "M050"
},
{
    "K": "Science",
    "V": "SC10"
},
{
    "K": "Science",
    "V": "SC99"
},
{
    "K": "Science2",
    "V": "Yet to confirm"
},
{
    "K": "Science2",
    "V": "Not available"
}],
_schedule: {
    "start": ISODate("2018-01-01T00:00:00.000+0000"),
    "end": ISODate("2020-01-01T00:00:00.000+0000"),
    _sessions: [{
        "days": ["2018-011-02",
        "2019-02-01",
        "2019-06-03"]
    },
    {
        "optional": []
    }]
},
    {
    _id: 4,
    _status: "expired",
    _subjects: [{
        "K": "Maths",
        "V": "M010"
    }],
    _schedule: {
        "start": ISODate("2015-01-01T00:00:00.000+0000"),
        "end": ISODate("2016-01-01T00:00:00.000+0000"),
        _sessions: [{
            "days": []
        },
        {
            "optional": []
        }]
    }
}

0 个答案:

没有答案