MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да получите изход на mongo shell (три точки) за непрекратена команда

Вашият код не включва нищо, което записва в stdin на вашия дъщерен процес, така че ще се изненадам, ако получите многоточие, което показва непълна команда, когато всъщност не изпращате никаква команда - непълна или друга.

Като казахме това, много помощни програми за командния ред се държат по различен начин, когато открият истински терминал, свързан към техния stdin/stdout. напр. git log ще показва резултатите, когато го стартирате директно, но не и когато подадете резултатите към друга команда като git log | cat така че това може да е така и тук.

Това може да е свързано и с буферирането - ако потокът ви е буфериран на ред, тогава няма да видите нито един ред, който не завършва веднага с нов ред.

Истинският въпрос е:виждате ли > бърз? Изпращате ли някаква команда към mongo shell?

Скриптирането на интерактивни CLI инструменти може да бъде трудно. напр. вижте какво трябваше да направя, за да тествам една много проста интерактивна програма тук:

Трябваше да създам две наименувани тръби, да се уверя, че stdin, stderr и stdout не са буферирани и след това да използвам някои други трикове, за да заработи. Това е шел скрипт, но е само за да ви покаже пример.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose връща недефиниран за съществуващо поле

  2. Как да разрешите на всички хостове да имат реплика, зададена в mongodb

  3. Moongoose агрегат $match не съвпада с идентификатори

  4. Как да сравним два низа в данните на mongoDB spring?

  5. поле за попълване на mongoose без опция за реф