Doradzałbym użycie frameworka agregacji:
db.full_set.aggregate([ { $match: { date: "20120105" } }, { $out: "subset" } ])
Działa około 100 razy szybciej niż forEach
przynajmniej w moim przypadku. Dzieje się tak, ponieważ cały potok agregacji działa w procesie mongod, podczas gdy rozwiązanie oparte na find()
i insert()
musi wysłać wszystkie dokumenty z serwera do klienta iz powrotem. Powoduje to obniżenie wydajności, nawet jeśli serwer i klient znajdują się na tym samym komputerze.