mongo shell是一个用来连接MongoDB的JavaScript接口,提供给用户查询和操作MongoDB中的数据、以及用来对MongoDB进行管理。
启动并自动连接到一个MongoDB实例:
缺省安装在“/usr/bin/”中,用“which”命令可以查看到:
# which mongo
/usr/bin/mongo
所以可以直接运行:
# mongo
MongoDB shell version: 3.2.3
connecting to: test
……
缺省连接到localhost的27017端口,并缺省地使用test数据库。
切换到其他数据库:
> use
插入(Create):
插入命令参考: https://docs.mongodb.org/manual/tutorial/insert-documents/
> db..insert({key: value}); #
"db"表示当前使用的db。
比如:
> db.testCollection.insert({name: "Xu"})
WriteResult({ "nInserted" : 1 })
查询(Read):
查询命令参考: https://docs.mongodb.org/manual/tutorial/query-documents/
> db..find() #没带条件表示查询所有,缺省返回20条
比如:
> db.testCollection.find()
{ "_id" : ObjectId("56ca7c37012557f8f72c9a1f"), "name" : "Xu" }
美化查询结果:
> db.myCollection.find().pretty()
修改(Update):
修改命令参考: https://docs.mongodb.org/manual/tutorial/modify-documents/
> db..update({key: "value"}, {key: "newValue"})
#(第一个参数是查询条件,第二个参数是update的内容)
比如:
> db.testCollection.update(
... {name: "Xu"},
... {name: "Clement-Xu"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.testCollection.find().pretty()
{ "_id" : ObjectId("56ca7c37012557f8f72c9a1f"), "name" : "XuJijun" }
删除(Delete):
删除命令参考: https://docs.mongodb.org/manual/tutorial/remove-documents/
> db..remove( { key : "value" } ) #如果不带参数,则删除所有
比如:
> db.testCollection.remove(
... {name: "Clement-Xu"})
WriteResult({ "nRemoved" : 1 })
退出mongo shell:
> quit() 或 exit 或
图形化(GUI)客户端:
- robomongo:https://robomongo.org
需要修改MongoDB的配置文件,去除ip绑定:
#
vi /etc/mongod.conf
把这句话注释掉:
bindIp: 127.0.0.1
然后重启服务:
启动robomongo之后指定ip和port连接:
注:最新版的robomongo已经取消了ssh tunnel功能(不知为何)。需要的得自己弄,比如通过SecureCRT。