sql >> Databáze >  >> NoSQL >> MongoDB

Jak získat výstup mongo shellu (tři tečky) pro neukončený příkaz

Váš kód nezahrnuje nic, co zapisuje do stdin vašeho podřízeného procesu, takže bych byl překvapen, kdybyste dostali tři tečky, které označují neúplný příkaz, i když ve skutečnosti nepošlete vůbec žádný příkaz – neúplný nebo jiný.

Jak již bylo řečeno, mnoho nástrojů příkazového řádku se chová odlišně, když objeví skutečný terminál připojený k jejich stdin/stdout. Např. git log bude stránkovat výsledky, když jej spustíte přímo, ale ne když výsledky převedete do jiného příkazu, jako je git log | cat takže to může být i tento případ.

To může také souviset s ukládáním do vyrovnávací paměti – pokud je váš stream ukládán do vyrovnávací paměti, neuvidíte hned žádný řádek, který by nebyl ukončen novým řádkem.

Skutečná otázka zní:vidíte > výzva? Posíláte nějaký příkaz do mongo shellu?

Psaní interaktivních nástrojů CLI může být složité. Např. podívejte se, co jsem musel udělat, abych otestoval velmi jednoduchý interaktivní program:

Musel jsem vytvořit dvě pojmenované roury, ujistit se, že stdin, stderr a stdout nejsou ve vyrovnávací paměti, a pak použít nějaké další triky, aby to fungovalo. Je to skript Shell, ale je to jen pro ukázku.




  1. Používání faset v agregačním rámci C# s více fasetami, Unwind a sortByCount

  2. Monitorování databáze bez agenta pomocí ClusterControl

  3. Vizualizace topologie vašeho clusteru v ClusterControl

  4. Obsluha odesílání dvou parametrů ve volání API v Angular App