Лучший ответ на ваш запрос «делать точно такие же вещи, как вы можете в оболочке монго» зависит от того, что вы считаете «точно такими же вещами».
На самом низком уровнеОболочка mongo просто отправляет сообщения, используя документированный «проводной протокол», который немного оборачивается вокруг данных BSON, документированной двоичной версии / расширения JSON.Таким образом, на низком уровне (отправляя сообщения по TCP / IP) вы можете делать все, что захотите.
На чуть более высоком уровне оболочка mongo включает в себя JavaScript-движок, который в текущих версияхSpiderMonkey версия 1.7 от Mozilla Foundation, также с открытым исходным кодом.В будущей версии будет использоваться JavaScript-движок Google V8, снова с открытым исходным кодом и доступный для загрузки.Оболочка предоставляет некоторые функции собственного кода для этих движков: см. Engine_spidermonkey.cpp и engine_v8.cpp в исходном коде MongoDB.
На еще более высоком уровне оболочка включает некоторые «вспомогательные функции», написанные на JavaScriptэто упрощает ввод некоторых команд.Вы можете увидеть эти функции в командной строке, набрав имя вызова функции и не обращая внимания на круглые скобки: ввод «sleep (500)» будет спать в течение 500 миллисекунд, а «sleep» покажет, что «sleep» вызывает «nativeHelper».применить (сон_, аргументы) ".Все эти вспомогательные функции находятся в файлах .js в каталоге «shell» в исходном коде MongoDB, который вы можете загрузить.
Помимо этого, есть цикл командной строки, который обеспечивает редактирование и вызов командной строки,код для обработки аргументов в вызывающей командной строке и код для чтения и записи данных в формате BSON для связи с сервером, очень похожий на то, что обеспечивает драйвер C #.
Итак, вы можете использовать любой из этого кода, которыйВам может пригодиться или написать подобный или другой код самостоятельно.В действительности нет никакой скрытой магии, все это с открытым исходным кодом.
Если вы знаете, чего хотите достичь, и застряли на деталях того, как что-то сделать, задайте свой конкретный вопрос и, надеюсь, выполучите меньше общих ответов, чем этот.