晖鸽 發表於 2020-3-17 15:24:00

MongoDB之命令行命令

<p>xshell 登录到 MongoDB电脑</p>
<p>进入到目录下</p>
<div class="cnblogs_code">
<pre># cd mongodb_common/<span>
# ls
bin
GNU-AGPL-3.0<span>
journal
LICENSE-<span>Community.txt
mongodb_common-1.3.4.0.9.1-linux.rhel.7.amd64-<span>release.tar.gz
MPL-2<span>
README
VERSION
# cd bin/<span>
# ls
bsondump         mongod       mongofiles   mongorestoremongotop
install_compassmongodump    mongoimportmongos
mongo            mongoexportmongoreplaymongostat</span></span></span></span></span></span></pre>
</div>
<p>&nbsp;</p>
<p>登录</p>
<div class="cnblogs_code">
<pre># ./mongo --port 27017<span>
MongoDB shell version v4.0.9<span>
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("233f49fd-be88-4de1-8368-3a17b8671dde"<span>) }
MongoDB server version: 4.0.9</span></span></span></pre>
</div>
<p>&nbsp;</p>
<p>进入 admin 数据库,然后认证 账号 密码</p>
<div class="cnblogs_code">
<pre>mongos&gt;<span> use admin
switched to db admin
mongos&gt; db.auth('admin','admin!123'<span>)
1</span></span></pre>
</div>
<p>创建用户和数据库,然后插入数据</p>
<div class="cnblogs_code">
<pre>mongos&gt; db.createUser({user: "apple",pwd: "111111",roles: [ { role: "dbOwner", db: "autotest"<span> } ]} )
Successfully added user: {
    "user" : "apple"<span>,
    "roles"<span> : [
      {
            "role" : "dbOwner"<span>,
            "db" : "autotest"<span>
      }
    ]
}
<span>
mongos&gt; db.auth('apple','111111'<span>)
1<span>
mongos&gt;<span> use autotest
switched to db autotest
mongos&gt; db.city.insert({city_id: NumberLong("1"),city:"beijing"<span>})
WriteResult({ "nInserted" : 1<span> })
mongos&gt; db.city.insert({city_id: NumberLong("2"),city:"shanghai"<span>})
WriteResult({ "nInserted" : 1 })</span></span></span></span></span></span></span></span></span></span></span></span></pre>
</div>
<p>查询数据</p>
<div class="cnblogs_code">
<pre>mongos&gt;<span> db.city.find()
{ "_id" : ObjectId("5e7c4a3c89da5f03d4886442"), "city_id" : NumberLong(1), "city" : "beijing"<span> }
{ "_id" : ObjectId("5e7c4b2989da5f03d4886443"), "city_id" : NumberLong(2), "city" : "shanghai" }</span></span></pre>
</div>
<p>&nbsp;</p>
<p>删除数据</p>
<div class="cnblogs_Highlighter">
<pre class="brush:csharp;gutter:true;">db.city.remove({});
WriteResult({ "nRemoved" : 4 })
</pre>
</div>
<p>  </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>附录</p>
<p>几种登录方式</p>
<ol>
<li>无密码登陆本机部署的mongos路由服务 ,端口为27017</li>
</ol>
<div>
<p class="code">mongo --port 27017</p>
</div>
<ol>
<li>使用用户名密码登陆</li>
</ol>
<div>
<p class="code">/mongodb_common/bin/mongo --port 27017 -uadmin -padmin12345</p>
</div>
<p class="YOYOSYS">&nbsp;</p>
<ol>
<li>登陆远程主机</li>
</ol>
<div>
<p class="code">./mongo 142.16.122.71:27017/admin -uadmin -padmin12345</p>
</div>
<p>解析:142.16.122.71:27017为主机名(IP)、端口。admin 为登陆的数据库</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="206">
<p><strong>命令</strong></p>
</td>
<td valign="top" width="362">
<p class="a"><strong>说明</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>show dbs</p>
</td>
<td valign="top" width="362">
<p>查看全部数据库</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>show collections</p>
</td>
<td valign="top" width="362">
<p>显示当前数据库中的集合(类似关系数据库中的表)</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>show users</p>
</td>
<td valign="top" width="362">
<p>查看当前数据库的用户信息</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>use &lt;db name&gt;</p>
</td>
<td valign="top" width="362">
<p>切换数据库跟mysql一样</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>db 或者db.getName()</p>
</td>
<td valign="top" width="362">
<p>查看当前所在数据库</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>db.help()</p>
</td>
<td valign="top" width="362">
<p>显示数据库操作命令,里面有很多的命令</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>db.foo.help()</p>
</td>
<td valign="top" width="362">
<p>显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>db.foo.find()</p>
</td>
<td valign="top" width="362">
<p>对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>db.foo.find( { a : 1 } )</p>
</td>
<td valign="top" width="362">
<p>对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>rs.status()</p>
</td>
<td valign="top" width="362">
<p>查看副本集状态。</p>
</td>
</tr>
<tr>
<td valign="top" width="206">
<p>db.status()</p>
</td>
<td valign="top" width="362">
<p>查看数据库状态。</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="140">
<p class="YOYOSYS"><strong>角色</strong></p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS"><strong>权限</strong></p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS"><strong>说明</strong></p>
</td>
</tr>
<tr>
<td rowspan="2" valign="top" width="140">
<p class="YOYOSYS">数据库用户角色</p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS">read</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">提供了读取所有非系统集合,以及系统集合中的system.indexes, system.js, system.namespaces</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">readWrite</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">包含了所有read权限,以及修改所有非系统集合的和系统集合中的system.js的权限</p>
</td>
</tr>
<tr>
<td rowspan="3" valign="top" width="140">
<p class="YOYOSYS">数据库管理角色</p>
<p class="YOYOSYS">&nbsp;</p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS">dbOwner</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">数据库的全部权限</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">dbAdmin</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">一些数据库对象的管理操作</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">userAdmin</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">为当前用户创建、修改用户和角色。拥有userAdmin权限的用户可以将该数据库的任意权限赋予任意的用户</p>
</td>
</tr>
<tr>
<td rowspan="5" valign="top" width="140">
<p class="YOYOSYS">集群管理权限</p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS">admin</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">数据库包含了下面的角色,用户管理整个系统,而非单个数据库。这些权限包含了复制集和共享集群的管理函数</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">clusterAdmin</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">提供了最大的集群管理功能。相当于clusterManager, clusterMonitor, and hostManager和dropDatabase的权限组合</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">clusterManager</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">提供了集群和复制集管理和监控操作。拥有该权限的用户可以操作config和local数据库(即分片和复制功能)</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">clusterMonitor</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">仅仅监控集群和复制集</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">hostManager</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">提供了监控和管理服务器的权限,包括shutdown节点,logrotate, repairDatabase等</p>
</td>
</tr>
<tr>
<td rowspan="4" valign="top" width="140">
<p class="YOYOSYS">所有数据库角色</p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS">readAnyDatabase</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">具有read每一个数据库权限。但是不包括应用到集群中的数据库</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">readWriteAnyDatabase</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">具有readWrite每一个数据库权限。但是不包括应用到集群中的数据库</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">userAdminAnyDatabase</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">具有userAdmin每一个数据库权限,但是不包括应用到集群中的数据库</p>
</td>
</tr>
<tr>
<td valign="top" width="118">
<p class="YOYOSYS">dbAdminAnyDatabase</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">提供了dbAdmin每一个数据库权限,但是不包括应用到集群中的数据库</p>
</td>
</tr>
<tr>
<td valign="top" width="140">
<p class="YOYOSYS">超级管理员权限</p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS">root</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">dbadmin到admin数据库、useradmin到admin数据库以及UserAdminAnyDatabase。但它不具有备份恢复、直接操作system.*集合的权限,但是拥有root权限的超级用户可以自己给自己赋予这些权限</p>
</td>
</tr>
<tr>
<td valign="top" width="140">
<p class="YOYOSYS">备份恢复角色</p>
</td>
<td valign="top" width="118">
<p class="YOYOSYS">backup、restore</p>
</td>
<td valign="top" width="311">
<p class="YOYOSYS">&nbsp;</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>进入bin目录</p>
<div class="cnblogs_Highlighter">
<pre class="brush:python;gutter:true;"># ls
bsondump         mongo   mongodump    mongofiles   mongoreplay   mongos   mongotop
install_compassmongodmongoexportmongoimportmongorestoremongostat
</pre>
</div>
<p> </p>
<p>无密码登录本机部署的mongos路由服务</p>
<div class="cnblogs_Highlighter">
<pre class="brush:python;gutter:true;"># ./mongo --port 27017
MongoDB shell version v4.0.9
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("648db192-0bb0-4737-83e4-ba6187c9971b") }
MongoDB server version: 4.0.9
mongos&gt;
</pre>
</div>
<p>  </p>
<p>切换数据库,数据库:admin。然后输入账号密码</p>
<div class="cnblogs_Highlighter">
<pre class="brush:python;gutter:true;">mongos&gt; use admin
switched to db admin
mongos&gt; db.auth('admin','admin!123')
1
mongos&gt;
</pre>
</div>
<p><img src="https://img2020.cnblogs.com/blog/1778370/202108/1778370-20210810162438013-1478816222.jpg"></p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/l7planet/p/12510940.html
頁: [1]
查看完整版本: MongoDB之命令行命令