NB: Denne løsning virker/måske ikke fungere med nyere Mac OS'er (kommentarer angiver>10.13?). Tilsyneladende er der foretaget ændringer af sikkerhedsmæssige årsager.
Konceptuelt gælder løsningen - følgende er et par kilder til diskussion:
- https://wilsonmar.github.io/maximum-limits/
- https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
- https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7 -1
--
Jeg har haft det samme problem (udførelse af en anden operation, men stadig en "For mange åbne filer"-fejl), og som lese siger, ser det ud til at være nede på 'maxfiles'-grænsen på maskinen, der kører mongod.
På en mac er det bedre at tjekke grænser med:
sudo launchctl limit
Dette giver dig:
<limit name> <soft limit> <hard limit>
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 709 1064
maxfiles 1024 2048
Det, jeg gjorde for at omgå problemet, var midlertidigt at sætte grænsen højere (min var oprindeligt noget i retning af blød:256, hård:1000 eller sådan noget mærkeligt):
sudo launchctl limit maxfiles 1024 2048
Kør derefter forespørgslen/indekseringsoperationen igen og se, om den går i stykker. Hvis ikke, og for at beholde de højere grænser (de nulstilles, når du logger ud af den shell-session, du har indstillet dem på), skal du oprette en '/etc/launchd.conf'-fil med følgende linje:
limit maxfiles 1024 2048
(eller føj den linje til din eksisterende launchd.conf-fil, hvis du allerede har en).
Dette vil indstille maxfilen via launchctl på hver shell ved login.