MongoDB初学前一些基础知识的了解

1、MongoDB简介(参考于菜鸟教程)

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写成,旨在为Web应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。(至于关系型数据库与非关系型的具体差别请移步http://www.runoob.com/mongodb/nosql.html)它将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

关于它的及下载安装流程在菜鸟驿站上有详细的介绍。

2、windows运行并配置mongoDB服务

(1)启动并连接数据库

进入你的安装位置文件夹可以看到(这里默认你已经安装并配置好了MongoDB的环境变量)

在此目录下我们创建一个data文件夹(名称可以任意),然后打开cmd(用管理员身份运行)输入mongod --dbpath + 你的data路径,如Mongod --dbpath D:\mongoDB\data,这样我们便启动了MongoDB服务 

然后我们就可以通过cmd输入mongo或使用Pycharm编写Python代码来操作数据库了。

(2)安装服务

  mongoDB与mysql等数据库不同,mysql在电脑上安装好了往后都能自启动服务,非常方便,直接连接就好。而mongoDB则需要手动创建,如果你希望能像mysql一样,不需要每启动服务就能直接连接mongoDB数据库,就手动创建服务。(当然如果你不嫌麻烦的话也可以不创建,对你使用mongoDB来说没有任何影响)。

①首先在你的存放数据的文件(我的是data)同级目录下创建一个log文件夹(由于我直接在安装文件里创建了data,所以data、bin都在同级目录下)

②在安装目录中创建一个文件mongod.cfg

内容如下

systemLog:

    destination: file

    path: D:\mongoDB\log\mongod.log

storage:

dbPath: D:\mongoDB\data

③使用管理员权限打开一个cmd,输入mongod --config "D:\MongoDB\mongod.cfg" --install执行。

④此后打开系统服务就可以找到mongo的服务了,找到后启动此项服务。

此后,如果我们再需要连接mongoDB就可以直接连接了,而不需要再在cmd里通过输入“mongod --dbpath + 你的data路径”来启动。 

3、一个简单例子

通过几行python代码从mongoDB的test数据库中读取集合col(表col)中的数据(数据是我之前在菜鸟驿站学习mongoDB时通过cmd在test库中的col表插入的)

import pymongo
mongo_url = "127.0.0.1:27017"
client = pymongo.MongoClient(mongo_url)
DATABASE = "test"
db = client[DATABASE]

COLLECTION = "col"
db_coll = db[COLLECTION ]

queryArgs = {'by':'菜鸟教程'}
search_res = db_coll.find(queryArgs).sort('age',-1)
for record in search_res:
      print(f"_id = {record['_id']}, title = {record['title']}, url = {record['url']}")

运行结果:

4、向mongoDB中导入或读取CSV数据

(1)用mongoimport(可导入为txt或csv)导入

打开cmd后输入mongoimport -d test -c risi --type csv --headerline --file C:\Users\Administrator\Desktop\MongoDB学习\iris.data.csv

   -d:表示数据库的名字

   -c:集合的名称

 --type:文件类型

 --headerline:指明第一行是列名,不需要导入

 --file:文件所在的位置

运行结果:

(2) 从MongoDB中读取CSV数据

import pymongo
import csv
mongo_url = "127.0.0.1:27017"
DATABASE = "vis"
TABLE = "raw_data"
client = pymongo.MongoClient(mongo_url)
db_des = client[DATABASE]
db_des_table = db_des[TABLE]

# newline='' 的作用是防止结果数据中出现空行,专属于python3
with open(f"{DATABASE}_{TABLE}.csv", "w", newline='') as csvfileWriter:
    writer = csv.writer(csvfileWriter)
 
    fieldList = [
        "_id",
        "ipsmalltype",
        "filelen",
        "fileaffix",
        "iscracked",
        "starttime",
        "scrip",
        "dstip",
        "srcport",
        "dstport",
        "vpi1",
        "vpi2",
        "atm1aaltype",
    ]
    writer.writerow(fieldList)

    allRecordRes = db_des_table.find()
    # 写入多行数据
    for record in allRecordRes:
        print(f"record = {record}")
        recordValueLst = []
        for field in fieldList:
            if field not in record:
                recordValueLst.append("None")
            else:
                recordValueLst.append(record[field])
        try:
            writer.writerow(recordValueLst)
        except Exception as e:
            print(f"write csv exception. e = {e}")

运行结果:

运行后,控制台会显示读取的数据的情况,然后在你的当前代码所在的目录下会存入你读取的csv文件。

5、Mongodb解决不能连接到服务器的错误

(1)在我某次连接MongoDB的时候,出现了以下错误:

MongoDB shell version: v3.4.2

connecting to: test
Mon Mar  3 23:45:09.491 Error: couldn't connect to server  127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed

导致这个原因有两个:

①你的电脑没有启动mongoDB服务,解决方法:

   打开cmd输入mongod --dbpath + 你的data路径

   或已配置服务的可直接打开计算机管理找到mongo直接启动服务即可。

②上次关闭Mongodb不当,数据文件还继续占用,正常退出因该是exit命令

解决方法:

删除掉D:\MongoDB\data中的mongod.lock文件,开启MongoDB服务

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值