python20、MongoDB

mongodb:非关系型数据库,语法单独不通用
最像关系型数据库的一种非关系型数据库(分布式存储,存到文档、但文档的键(key)值(value)不再是固定的类型与大小)
可以放一些日志信息、装备信息、属性信息、游戏场景。。等经常会变化的数据
输入momgo,进入
输入exit,退出
删除库:db.dropDatabase() ,D要大写
切换/创建数据库都是use
创建库后,要插入数据才会存储新的库
{ok,1}表示执行成功

创建集合后都会生成系统索引集合
删除集合: db.集合名称.drop()与库有部分换位(集合名称)的样子

文档的增删改查:多组数据增和噩梦需要用到中括号
db.集合名称.insert(document),类似删集合的排序
每一条文档数据,就是一个document,就是一条json
添加文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectId
,如例: db.student.insert({’_id’:1,。。。。中的_id,注意下划线
文档用大括号括起,多个文档再加中括号,最外面必须要有小括号

db.集合名称.find([conditions]),括号不加参数会查看所有文档,括号加入文档的某个键值
(用大括号括起,外加小括号,可以多个条件且外层不用中括号)就可以指定查询
格式化显示: db.student.find().pretty() 又叫美观查询,文档的各个信息都只作一行

噩梦条件:增删改查通用的
a n d 、 and、 andor、或两种一起混用的时候针对的 多个数据用中括号括起,然后放到中括号外层再用大括号括起

db.集合名称.update()更新修改数据,不用输入原数据,直接输入原键加新值就行,这种方式遇到多个文档有该键时只更新第一条,
输入多个键值不能变成指定修改,只会分开多次去执行
所以避免改错可以指定修改,db.table.update({name:‘xiaoming’}, { KaTeX parse error: Expected 'EOF', got '}' at position 26: …666, sex: 'xx'}}̲ ), 其中set是指定数据被改的内容,set前面的name:xiaoming是指定的文档的特征(这个特征最好是唯一的),外层不用中括号

db.table.update({sex:‘男’}, {$set:{sex:‘女’}}, { multi:true} )
其中最后面加入{ multi:true}把set前不唯一的可能是多个数据拥有的键值进行修改,也可以把set前的改成其他的这样就是符合改特征的都改

db.集合名称.remove({}) 括号里只加大括号删除集合里所有的文档,
加键值,就是指定类型删除,加了键值且最后面加{ justOne:true} 就是只删该条件的第一条

用pythoncharm操作mongodb:
因为本机不能直接连接到虚拟机的数据库,如果本机装了数据库,本机的python可以通过端口连入本机的数据库
虚拟机的端口不在本机上,所以要通过端口转发把端口搬到虚拟机外再搬到本机让本机的python连接来用
需要设置网络的端口转发,主机和子段一致的端口码
虚拟机尝试可以输入pip install pymongo,然后打开vim的任意py文件
然后导模块包import pymongo
然后建立连接:client = pymongo.MongoClient(IP,端口码)
指定数据库:db = client[数据库名]获取到了数据库
指定集合:变量=db[集合名]获取到了集合
查找文档: 变量.find()然后必须print打印,像用python一样
查找所有:find() 只是一个对象 可以用for 遍历出来,即for i in 变量(变量先赋值为子变量.find())

添加一条文档:insert_one
添加多条:insert_many()

删除一条文档:delete_one
删除多条:delete_many()

修改一条文档: update_one
修改多条:update_many()

以上三种括号里加一个变量赋值为键值的集合,相当于字典就可以放一个变量进去了
执行完毕后不显示变量只显示集合元素,但变量在后面仍可用

猜你喜欢

转载自blog.csdn.net/qwe863226687/article/details/113969378