过滤平展主从

时间:2018-07-26 19:01:30

标签: mongodb mongodb-query

我有一个设计不良的集合,该集合会基于顺序保存为“主从关系”,例如:

{
    _id: 1
    type: 'master',
    color: 'Blue'
},
{
    _id: 2
    type: 'slave',
    color: 'Blue'
},
{
    _id: 3
    type: 'slave',
    color: 'Green'
},
{
    _id: 4
    type: 'master',
    color: 'red'
},
{
    _id: 5
    type: 'slave',
    color: 'Blue'
}

我现在要做的是以某种方式过滤此集合,如果过滤出一个主文档,则它的所有“从属”也应该被过滤。例如,如果我按颜色Blue进行过滤,则要获取以下文档:

{
    _id: 1
    type: 'master',
    color: 'Blue'
},
{
    _id: 2
    type: 'slave',
    color: 'Blue'
}

请注意,带有id: 5的文档应被过滤掉,因为其“主”不是Blue

如何以良好的性能实现这一目标?

免责声明:我确实知道这是一个错误的设计,“从属”可能应该嵌套在“主”中,但是不幸的是,现在不能更改此设计:/

0 个答案:

没有答案