Mongodb 嵌套对象的投影、过滤和排序是否需要很多性能?

Mongodb 嵌套对象的投影、过滤和排序是否需要很多性能?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,我有一个数据库,包含5000万个文档,每个文档都有一个对象字段,其中包含几十个其他嵌套对象。基本上,此字段是转换为对象的XML文件。我用aggregate()和find()进行了一些测试,但是我注意到,投影和过滤这个字段会带来很大的性能损失。 比如说 $cursor = $db->find(array( 'id_empresa' => 7, 'tipo_doc' => 'nfe', 'xml.NFe.inf

我有一个
数据库
,包含5000万个文档,每个文档都有一个
对象
字段,其中包含几十个其他嵌套对象。基本上,此字段是转换为
对象的
XML
文件。我用
aggregate()
find()
进行了一些测试,但是我注意到,投影和过滤这个字段会带来很大的性能损失。 比如说

$cursor = $db->find(array(
            'id_empresa' => 7,
            'tipo_doc' => 'nfe',
            'xml.NFe.infNFe.emit.xNome' => ['$regex' => 'auto', '$options' => 'i'],
            '$and' => array(['$or' => array(
                        ['xml.NFe.infNFe.emit.xNome' => ['$regex' => 'me', '$options' => 'i']],
                        ['xml.NFe.infNFe.dest.xNome' => ['$regex' => 'me', '$options' => 'i']],
                        ['xml.NFe.infNFe.transp.transporta.xNome' => ['$regex' => 'me', '$options' => 'i']]
                    )])
                ), array(
            'limit' => 100,
            'sort' => ['xml.NFe.infNFe.emit.xNome' => 1],
            'projection' => array(
                'id_empresa' => 1,
                'tipo_doc' => 1,
                '_id' => 1,
                'xml.NFe.infNFe.emit.xNome' => 1,
                'xml.NFe.infNFe.ide.nNF' => 1,
                'xml.NFe.infNFe.dest.xNome' => 1,
                'xml.NFe.infNFe.transp.transporta.xNome' => 1,
            )
        ));
在本例中,该对象只有4个投影场,但在大多数情况下,投影场约为20~40个

在使用这些嵌套对象时,有没有办法获得更好的性能