sql >> Database >  >> NoSQL >> MongoDB

Hoe krijg ik mongo shell-uitvoer (drie stippen) voor een niet-beëindigde opdracht?

Uw code bevat niets dat naar de stdin van uw kindproces schrijft, dus het zou me verbazen als u de ellips krijgt die een onvolledige opdracht aangeeft, terwijl u in feite helemaal geen opdracht verzendt - onvolledig of anderszins.

Dat gezegd hebbende, gedragen veel hulpprogramma's op de commandoregel zich anders wanneer ze een echte terminal ontdekken die is verbonden met hun stdin/stdout. bijv. git log pagina's de resultaten wanneer u het rechtstreeks uitvoert, maar niet wanneer u de resultaten naar een ander commando stuurt, zoals git log | cat dus dit kan hier ook het geval zijn.

Dit kan ook te maken hebben met de buffering - als je stream line-gebufferd is, zie je geen regel die niet meteen met een nieuwe regel wordt beëindigd.

De echte vraag is:zie je de > snel? Stuur je een commando naar de mongo-shell?

Het schrijven van interactieve CLI-tools kan lastig zijn. bijv. zie hier wat ik moest doen om een ​​heel eenvoudig interactief programma te testen:

Ik moest twee benoemde pijpen maken, ervoor zorgen dat stdin, stderr en stdout niet worden gebufferd, en dan een aantal andere trucs gebruiken om het te laten werken. Het is een shellscript, maar het is alleen bedoeld om u een voorbeeld te laten zien.




  1. Verlaag de score in Redis of verwijder indien 0

  2. Hoe ingesloten schemadocument in mangoest te verwijderen?

  3. Snelste manier om dubbele documenten in mongodb te verwijderen

  4. MongoDB count() undefined