我有一个设计不良的集合,该集合会基于顺序保存为“主从关系”,例如:
{
_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
。
如何以良好的性能实现这一目标?
免责声明:我确实知道这是一个错误的设计,“从属”可能应该嵌套在“主”中,但是不幸的是,现在不能更改此设计:/