Eu aconselharia usar a estrutura de agregação:
db.full_set.aggregate([ { $match: { date: "20120105" } }, { $out: "subset" } ])
Funciona cerca de 100 vezes mais rápido que
forEach
Ao menos em meu caso. Isso ocorre porque todo o pipeline de agregação é executado no processo mongod, enquanto uma solução baseada em find()
e insert()
tem que enviar todos os documentos do servidor para o cliente e depois voltar. Isso tem uma penalidade de desempenho, mesmo se o servidor e o cliente estiverem na mesma máquina.