sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan får du mongo shell output (tre prikker) for uafsluttet kommando

Din kode indeholder ikke noget, der skriver til stdin af din underordnede proces, så jeg ville blive overrasket, hvis du fik ellipsen, der indikerer ufuldstændig kommando, mens du faktisk slet ikke sender nogen kommando - ufuldstændig eller på anden måde.

Når det er sagt, opfører mange kommandolinjeværktøjer sig anderledes, når de opdager en rigtig terminal forbundet til deres stdin/stdout. For eksempel. git log vil side resultaterne, når du kører det direkte, men ikke når du overfører resultaterne til en anden kommando som f.eks. git log | kat så det kan også være tilfældet her.

Dette kan også have at gøre med bufferingen - hvis din stream er linjebuffet, vil du ikke se nogen linje, der ikke er afsluttet med en ny linje med det samme.

Det virkelige spørgsmål er:ser du > hurtig? Sender du en kommando til mongo-skallen?

Det kan være svært at skrive interaktive CLI-værktøjer. For eksempel. se, hvad jeg skulle gøre for at teste et meget simpelt interaktivt program her:

Jeg var nødt til at oprette to navngivne rør, sørge for at stdin, stderr og stdout ikke er bufferet, og så bruge nogle andre tricks for at få det til at virke. Det er et shell-script, men det er bare for at vise dig et eksempel.




  1. Meteor, definer samlinger dynamisk

  2. Flask &MongoDB - For Loop virker ikke

  3. Genbruger MongoDB slettet plads?

  4. Node + Mongodb + sorter indlejret array