Windows 是否有任何 mongo shell 擴展? (Is there any mongo shell extensions for windows?)


問題描述

Windows 是否有任何 mongo shell 擴展? (Is there any mongo shell extensions for windows?)

I've found the mongo‑hacker project, but it doesn't support Windows, so I am wondering does anybody know similar one?

‑‑‑‑‑

參考解法

方法 1:

Honestly I can't find restrictions which are connected with Windows, except:

  • *nix‑specific commands in Makefile and README
  • http://docs.mongodb.org/manual/release‑notes/2.2/#windows‑specific‑changes (which states, that WinXP isn't supported for 2.2)
  • checking _isWindows() in mongo_hacker.js

I've been using for a quite long time Mongo DB in *nix and Windows, and the only difference which I have faced is an absence of ‑‑fork param in Win version.

So what I would try to do (in Win7 f.e.):

  • remove _isWindows() line
  • start mongo terminal on some test DB with ‑‑shell command, just for playing with this

mongo localhost/test ‑‑shell mongo_hacker_custom.js

Then, if everything is working properly, you can fill ~/.mongorc.js with mongo_hacker_custom.js content, without creating of symbolic link (BTW, starting with Vista Windows also supports them already, so symbolic link is also suitable).

P.S. Now I can't try this solution, will check in a few hours suggested solution by myself.

UPD: yeap, it seems to be working just fine on my Windows 7 + MongoDB 2.2.1

方法 2:

mongo‑hacker does work on windows but a little work is required : 

‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
1) Make your own mongo configuration file (.mongorc.js)
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
  This is located in your documents : 
  %USERPROFILE%\.mongorc.js
  eg. C:\Users\Olivier\.mongorc.js

  A) Make all files from mongo‑hacker into one big JS file.
  ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑

    A.1. If you have cygwin (or some unix emulation tools) : 
    There might be a better way to achieve this but this will work.
    Once the .zip file is unzipped, and your are in \mongo‑hacker‑master\hacks

        find ./ ‑type f ‑name "*.js" | xargs cat > .mongorc.js

    You can then move this file to your documents.

    A.2. Else : 
    Or, if more convenient here is my version (v 0.0.4 at the time of writting) :
    Download : .mongorc.js example for windows
    And copy this file in your documents.

‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
2) Get the coloring working : 
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑

  A) Download : ansicon
  ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
  This processes ANSI escape sequences for Windows console programs.

  B)  Add this to your windows path 
  ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
  To get there : 
    > Click on start menu
    > Right click on computer
    > Properties
    > Advanced system settings
    > Environment variables
  Once there, in the 2nd section (system variables) : 
  You will see variable : 
  Path
    > Click on its value, and add the path to the ansicon.exe program, eg : 
C:\Program Files\ansicon\x64;

  C) Then
  ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
  You can now prefix your command with ansicon to get the coloring working : eg : 

    $ ansicon.exe mongodb

‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
3) Get a proper shell
‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑
  The out of the box windows shell (cmd.exe), being what it's,
  I'd really recommand that you get a proper shell.
  For example : console is a very nice program.

  I hope this helps !

方法 3:

The only reason for that line is due to the ANSI colouring not working in the windows terminal/cmd window (the Esc chars get output rather than interpreted).

Disable the colouring (there are several methods but emptying the 'constants' or NOPing the lower level call that everything ends up calling both work) and remove the check for windows to be able to use it.

Your other alternative is to run it under screen as the output colours at least work there (but not the prompt colours for some reason).

(by Restutan1ckolasOlivierLarueChrisF)

參考文件

  1. Is there any mongo shell extensions for windows? (CC BY‑SA 3.0/4.0)

#mongo-shell #mongoDB






相關問題

Windows 是否有任何 mongo shell 擴展? (Is there any mongo shell extensions for windows?)

獲取查詢中所有文檔的大小 (Get the size of all the documents in a query)

如何從 java 程序運行 mongo 查詢? (How to run a mongo query from java program?)

MongoDB 更新 ObjectId 字段 (MongoDB update ObjectId field)

MongoDB - 將簡單字段更改為對象 (MongoDB - change simple field into an object)

mongoDB aggregate() 在電子郵件對象集合中查找電子郵件時間 (mongoDB aggregate() finding email times in a collection of email objects)

指定在 mongodb .js 腳本中使用哪個數據庫 (Specify which database to use in mongodb .js script)

命令失敗:MongoError:CMD_NOT_ALLOWED:配置文件 (command failed: MongoError: CMD_NOT_ALLOWED: profile)

有沒有辦法在 MongoDB 的一個語句中添加遞增的 id? (Is there a way to add an incrementing id in one statement in MongoDB?)

運行 rs.initiate() 後 mongodb 副本集錯誤“...replSetHeartbeat 需要身份驗證...” (mongodb replica set error "...replSetHeartbeat requires authentication..." after running rs.initiate())

將 mongo shell 連接到受限的 MongoDB Atlas 數據庫? (Connect mongo shell to restricted MongoDB Atlas Database?)

[MongoDB]:更改所有數組字段中的值類型 ([MongoDB]: Changing the type of values in all array fields)







留言討論