记录MonGoDB
数据库的使用,主要使用Python
语言。
MongoDB安装及配置
参照最详细的Windows平台安装MongoDB教程 - TM0831 - 博客园 (cnblogs.com)
数据库启动服务
- 启动数据库服务
切换到mogod
路径,运行mogod
,并指定参数
mongod --dbpath D:\Euclid_Jie\DBdata
查看端口http://127.0.0.1:27017/,若显示如下内容,说明服务已经启动
It looks like you are trying to access MongoDB over HTTP on the native driver port.
关闭数据库服务
于服务窗口按下ctrl+C结束服务
使用数据库命令关闭(适用于数据库存储位置错误启动)
use admin db.shutdownServer()
数据库创建及写入
使用pymongo
库完成对Mongo
的操作
连接数据库,其中
DBName
为数据库的名字,collectionName
类似于表名import pymongo def MongoClient(DBName, collectionName): # 连接数据库 myclient = pymongo.MongoClient("mongodb://localhost:27017/") mydb = myclient[DBName] # 数据库名称 mycol = mydb[collectionName] # 集合(表) return mycol # 返回一个数据表 mycol = MongoClient("ZhiHu", '11月知乎舆情')
创建数据库、表
直接连接指定的库和表,如果存在则连接,如果不存在将创建,但是需要注意的是,只有当正式往表中写入数据后,表才被正式创建
写入数据
mycol.insert_one(document) # 其中document为json格式的数据 mycol.insert_many(document) # 写入多条
读取数据
Mongo数据库的数据由唯一的键
_id
进行索引,如果没有写入指定的_id
,将自动创建索引。mycol.distinct("_id") # 获取数据表的所有id,返回格式为list mycol.find_one({'_id': id}) # 根据指定条件查询,返回数据表的其中一条数据,格式为json
修改数据(增加列)
对原始的数据进行修改或,增加列内容,逻辑为确定哪一行,然后进行何种修改
mycol.update_one({'_id': id}, {"$set": {'comment': comment}}) # $set为一种更新方法
筛选子集
使用distinct设置筛选条件,获取符合条件的字段
idList = mycol.distinct("_id", {'天眼查Num': "天眼查无法查询", 'Url': {'$exists': False}})
数据查询
查询字段非空
db.cols.find({"name":{"$ne":null}})
查询字段包含数字
db.cols.find({"name":{$regex:"\d"}}) db.cols..find({"name":{$regex:"[0-9]"}})
未完待续,详见官方文档