nosqll - MongoDB 文件型数据库
文件型 - MongoDB
User:
[
{id:1,name:‘蔡文姬’,age:16,gender:‘女’},
{id:2,name:‘嫦娥’,age:16,gender:‘女’},
{id:3,name:‘西施’,age:16,gender:‘女’},
]
关系型(拉里艾莉森) - MySQL MSSQL(SQLServer微软,Windows) Sybase ORACLE(MySQL被收编)(虽然是免费的,有问题,付费) DB2+AUX(IBM)
1 . 把精力放在重要的逻辑上,细节,记住他怎么用就行! 会了逻辑,才有信心往后看。
士别三日当刮目相待-吴下阿蒙
2 . 不要等,主动去找事情做。
MySQL MS - MySQL Ux
User:
建表 ID (int 自增 主键) name age gender
为什么开发 MongoDB呢,关系型的不好吗?
之前的服务器级别的空间是20G,硬盘是8G,空间很小。内存8M。
缺点:查找速度不快(之前,现在告诉硬盘14400转快了),占用空间还非常大。
优点:
主要是数据格式是JSON,方便传输。
而且操作简单方便移动更加接近程序员操作(打点操作)原生语法 ORM
因为非关系型数据库,没有结构限制(),扩展性极强
MongoDB数据越多,存储数据比别的数据库,占用的空间越高 ? (数据少的时候差不多)
1.安装MongoDB
只卖服务不卖数据库
4版本比3版本多了个事务,还做得不是很好
程序员读懂:exception: connect failed
连接成功的话,cmd窗口会夯住
三个数据库默认端口
29 Data directory C:datadb not found., terminating
新建C:datadb 可以的,但是200m太大了,查看帮助,新建到d盘,加到路径下
CMD-
dbpath 数据库存在路径(必须存在)
mongod –dbpath D:MongoDBdatadb
2 . 基本操作命令
use locall 没有也可已进去
db.user.insert({name:‘Alexander’}) show databases 就有了数据库和表
MongoDB的特性 : 使用不存在的对象即创建该对象 (类似于python中的setattr)
3 增删改查
结果
如果已安装pip,执行即可。
4. MongoDB 数据类型
object 嵌套3级就好,套的再多了 就很慢
5 数学比较符
db.stu.find({age:{\(lt:10}})</p><div></div><p>db.stu.find({age:{\)lt:10}}) #并列条件查询
6 \( 修改器+ \)字符特殊用法
MongoDB中的那些个update修改器: \(inc \)set \(unset \)push \(pull</p><p> \)set 修改某个字段的值
\(unset 删除字段的值 db.stu.update({name:'self'},{\)unset:{mytime:1}},)
\(inc 引用增加 先引用 后增加</p><p>db.stu.update({},{\)inc:{age:1}}) #update只第一个人 +1
db.stu.update({},{\(inc:{age:-1}}) #年龄加 -1</p><h6>针对Array == list操作</h6><p>\)push == append()
\(pushAll == extend()</p><p>\)pull == remove()
\(pop (=) pop()</p><div></div><h5>hobby.\)’ 符合前面的值的下标位置
db.stu.update({‘hobby’:‘5’},{\(set:{'hobby.4':'五'}}) #4是下标,这是已知的,不知道的呢? 看下面----></p><p>db.stu.update({'hobby':'5'},{\)set:{‘hobby.\(':'五'}})</p><h5>7.object 操作</h5><p>首先要有这个表 (用.取属性)</p><p>db.stu.update({name:'小黑'},{\)set:{‘hobby.抽烟’:‘1包’}})
object 还是 Aerry 有.属性
db.stu.update({name:‘小白’,‘package.name’:‘绝世好剑’},{\(inc:{'package.\).count’:-1}})
Array+Object
\(字符特殊用法</h5><p>\) 字符特殊用法
存储当前(Array)符合条件的元素下标索引 ,只能存储最外层的 索引位置
例子:hobbys中等于5的元素改为 “五”
先查询到hobbys中5的 位置(2) ,将位置存储在 \(==(2) 字符中 然后根据\)字符的位置(2)更改数据
db.stu.update({“hoobys”:5},{ \(set: {"hoobys.\)”:“五”} })
上午的MongoDB语法
查询关键字
and
db.stu.find({age:20,gender:1})
db.stu.find({\(and:[{name:'小白'},{age:13}]}) #位置一样顺序不一样 ,还可以加and</p><p>or<br> db.stu.find({\)or:[{name:‘白’},{age:13}]})
all
db.stu.find({‘age’:{\(all:[1,2,3,4]}}) #全都在里面才可以</p><p>in<br> db.stu.find({name:{\)in :[‘屡屡’,‘小白’,‘蓝蓝’]}})
8 . 官方给出的推荐增删改查版本
新版3.2之后
增

官方不推荐使用insert了
db.stu.insertOne({name:‘6666’}) #只能插入字典
db.stu.insertMany([{name:777},{name:888}])
增加数据的_id ObjectId
增加数据的_id ObjectId 列表 [objectId,objectId]
查
db.tablename.findOne({查询条件}) #返回json数据(不似转)
改
db.tabelname.updateOne({{name:‘458’}},{’\(set':{修改属性}})</p><p>db.tabelname.updateMany({{name:'458'}},{'\)set’:{修改属性}}) #修改符合条件的所有数据
删
官方不推荐使用remove了
3.2
9 . 排序 + 选取 + 跳过
排序:db.stu.find().sort({age:-1}) 1 正序 -1 倒叙
选取:db.stu.find().limit(2) 选取两条数据
跳过:db.stu.find().skip(2) 跳过前两条数据
中间两条 or 跳过前N条
db.stu.find().sort({age:-1}).skip(2).limit(2) #分页
先排序 - 后跳过 - 选取 #limit最后那个 默认的
10 . python操作MongoDB
mysql 做不到,一列列的,MongoDB是字典的,好操作
pop 本来就是从后往前删,所以1,正序,就是从后往前,-1就是从前往后
作业:今天晚上+明天上午
错误 1
TypeError: unhashable type: ‘dict’
多加了个括号 , 错误:{{}} {} ~= get({})
错误 ; [] 是因为查错了表,那个表里没有那个内容的
list 可以显示出所有的表里的内容,如果没有,应该是自己没写别的内容 已经有2个,就不止是一个的。很多应该可以
存下mongDB的值
python操作 MongoDB

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161141.html