MongoDB的常用操作

Mongodb是非常好用的NoSQL数据库,在我看来是非常好用的爬虫利器,特别方便好用。这里记录下MongoDB在日常使用中遇到的一些坑及操作.

数据库的常用操作(MongoDB & 防火墙配置)yuenshui.cn

MongoDB的安装,可参考 菜鸟教程

mongodb启动:

在Linux 系统中直接运行bin文件夹中的mongod就行了 。 如下是在Windows系统的批命令,其中.lock文件是用来锁定数据使用,若上次非正常关闭,则需要删除此文件,否则会报错。

@echo off 
echo 开启mongodb中,等待ing...
if exist C:\A@常用\PythonDir\mongoDB\mongodb-win32-i386-2.0.4\data\db\mongod.lock (del C:\A@常用\PythonDir\mongoDB\mongodb-win32-i386-2.0.4\data\db\mongod.lock) else (echo 未发现lock文件)
::进入c盘
cd C:\A@常用\PythonDir\mongoDB\mongodb-win32-i386-2.0.4\bin
mongod   --dbpath "C:\Python\MongoDB\data"
pause

mongodb数据的导入导出

# mongoexport导出文件格式支持csv和json,不同的是csv格式必须显示的指定要导出的字段,如:
mongoexport -d database -c collections -o d:/a.csv -csv -f name,type

#而json格式则不需要
mongoexport -d database -c collections -o D:/学习/rbac/rbac/a.json --json
# 将a.csv里的数据导入到database 数据库中的collections 表中,如果不存在则自动创建
mongoimport -d database -c collections --file D:/a.csv --headerline --upsert

mongodb的查询操作

# 查询唯一值数据--类似于关系型数据库中的select distinct
db.<collection_name>.distinct("<field_name>")

# 查询唯一值的数量 
db.<collection_name>.distinct("<field_name>").length

MongoDB的远程连接

MongoDB的服务器端设置,包括端口打开、开启服务器、新建用户操作

# 首先需要开启服务器的27017端口,确保本地计算机可连接到远程服务器

# 开启远程服务器Mongod,bind_ip确保所有ip均可访问,--auth开启用户访问验证
 ./mongod --bind_ip 0.0.0.0 --auth

# 新建MongoDB的用户名,用来远程登录验证用
db.createUser(
    {
        user: "xxxx",
        pwd: "xxxx",
        roles: [
            {
                role: "userAdminAnyDatabase",
                db: "admin"
            },
            {
                role: "readWrite",
                db: "blog"
            }
        ]
    }
)

本地MongoDB连接远程Mongodb服务器

mongo <ip>:<port> -u <user_name> -p <password>

MongoDB远程访问的防火墙设置

由于只是个人使用,采用授权Auth的方式不太方便,而bind_ip 0.0.0.0的话,存在数据安全风险。这里采用另一折中的方法,仍bind_ip 0.0.0.0,但设置防火墙,仅对指定的IP开放27017端口。

# Linux 防火墙端口 (iptables)  
查看防火墙状态: service  iptables  status

开启防火墙(重启后永久生效):chkconfig iptables on

关闭防火墙(重启后永久生效):chkconfig iptables off

开启防火墙(即时生效,重启后失效):service iptables start

关闭防火墙(即时生效,重启后失效):service iptables stop

重启防火墙: /etc/init.d/iptables restart

开启特定IP的某个端口,按照如下步骤:

  • 编辑/etc/sysconfig/iptables(开启6379端口);
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 6379 --state NEW -j ACCEPT

如果有访问ip限制,就添加-s ip地址了

  • 重启防火墙
/etc/init.d/iptables restart

(2)除了在Linux命令行中设置,在阿里云服务器的安全规则中也可直接设置。

这里推荐关闭Linux服务器的防火墙,使用阿里云的安全组,更加方便!

欢迎关注个人公众号“畅所欲言的小笔记”:talk_freely,每周定期更新文章!

    原文作者:大坚果
    原文地址: https://zhuanlan.zhihu.com/p/40405999
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞