MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak uzyskać wyjście powłoki mongo (trzy kropki) dla niezakończonego polecenia?

Twój kod nie zawiera niczego, co zapisuje na standardowe wejście Twojego procesu potomnego, więc byłbym zaskoczony, gdyby pojawił się wielokropek oznaczający niekompletne polecenie, podczas gdy w rzeczywistości w ogóle nie wysyłasz żadnego polecenia — niekompletne lub w inny sposób.

To powiedziawszy, wiele narzędzi wiersza poleceń zachowuje się inaczej, gdy odkryje prawdziwy terminal podłączony do ich stdin/stdout. Np. git log pokaże wyniki, gdy uruchomisz go bezpośrednio, ale nie, gdy prześlesz wyniki do innego polecenia, takiego jak git log | cat więc może tak być również w tym przypadku.

Może to mieć również związek z buforowaniem — jeśli strumień jest buforowany wierszami, nie zobaczysz od razu żadnej linii, która nie byłaby zakończona znakiem nowej linii.

Prawdziwe pytanie brzmi:czy widzisz > podpowiedź? Czy wysyłasz jakieś polecenie do powłoki mongo?

Skryptowanie interaktywnych narzędzi CLI może być trudne. Np. zobacz, co musiałem zrobić, aby przetestować bardzo prosty interaktywny program tutaj:

Musiałem stworzyć dwa nazwane potoki, upewnić się, że stdin, stderr i stdout nie są buforowane, a następnie użyć kilku innych sztuczek, aby to zadziałało. Jest to skrypt powłoki, ale służy tylko do pokazania przykładu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zapewnić unikalny element w tablicy opartej na określonych polach - mongoDB?

  2. Włączanie kompresji danych w MongoDB 3.0

  3. MongoDB liczy odrębną wartość?

  4. Zapytanie agregujące Mongodb lub zbyt złożone?

  5. Mongo Zapytanie o osadzony dokument