标签:redis 出现 des hide 行数据 ODB set opened obj
MongoDB:文件型数据库 find() update() delete() insert()持久化
redis:get set 默认持久化
1.MongoDB是什么及其概念:
#MongoDB是一个快速存储数据(JSON),并ORM操作的数据库 #MongoDB是文件型数据库,不存在关系 #MongoDB中基本上存储了大量的冗余数据 #MongoDB中没有字段的概念 #MongoDB是非常灵活的数据库 #专有名词: #Mysql MongoDB #DB DB #Table Colletions Table概念 #row Documents row概念 #字段 Field 字段概念 #_id 唯一概念 #不存在即创建: #如果使用了不存在的对象即创建该对象
2.MongoDB的存储结构:
关系型数据库: #id name age course score score1 #1 子龙 84 python 99 0 #2 xiaoqinglong 73 javascript 0 99 文件型数据库: [ { _id:ObjectId("1298478375f8234d") ids:1, names:子龙, ages:84, courses:python, scores:99 }, { id:2, name:xiaoqinglong, age:73, course:javascript, score1:99 } ]
3.初识MongoDB
#1.安装mongoDB bin目录环境变量 #2.启动mongoDB: #mongod (手动创建文件夹) c:\data\db #mongod --dbpath "E:\Program Files\MongoDB\data\db" #3.MongoDB的默认端口号:27017 (redis:6379 MySql:3306)
4.mongodb 的指令:
#show dbs 查看当前数据库服务器中的所有数据库(DB) #use dbname 创建或使用数据库 #db 查看当前使用的数据库 / 代指当前使用的数据库的名字或对象 #show tables 查看当前数据库的 数据表 Collations
5.MongoDB的增删改查:
#增: #db.Collations.insert({"name":"zilong"}) #db.Collations.insert([{"name":"zilong"},{"name":"123"}]) #// insert 方式 被官方不推荐了 #1.db.Collations.insertOne({}) 只能单行操作插入 #2.db.Collations.insertMany([{},{}]) 根据array(列表)中的元素插入多行数据
#改: #db.user.update({"name":"酸菜"},{$set:{"name":"老坛酸菜"}}) #db.user.update({"name":"酸菜"},{$set:{"name":"老坛酸菜"}},多条修改:true) #// update 方式 被官方不推荐了 #db.user.updateOne({"name":"子龙"},{$set:{"name":"赵子龙"}}) #db.user.updateMany({"name":"小青龙"},{$set:{"name":"白虎"}})
#删除: #db.user.remove({}) #// remove 方式 被官方不推荐了 #db.user.deleteOne({"name":"白虎"}) #db.user.deleteMany({"name":"翠花儿"})
#查: #1.db.find({条件:1}) #2.db.findOne({条件:1}) #db.user.findOne({"name":"酸菜","age":1}) 逗号相当于 and #3.数学比较符: #$lt 小于 #$gt 大于 #$lte 小于等于 #$gte 大于等于 #find({"字段":{$比较符:值}}) #db.user.find({"age":{$gt:2}}) # where age > 2
#查: #1.db.find({条件:1}) #2.db.findOne({条件:1}) #db.user.findOne({"name":"酸菜","age":1}) 逗号相当于 and #3.数学比较符: #$lt 小于 #$gt 大于 #$lte 小于等于 #$gte 大于等于 #find({"字段":{$比较符:值}}) #db.user.find({"age":{$gt:2}}) # where age > 2
6.修改器:
#$set : 将某个key的value 修改为 某值 #$unset: 删除字段 {$unset: {test: "" }} #$inc:{$inc:{"age":100}} 原有值基础上增加 xxx #array: #$push : 向数组Array最后位置插入一条元素 {$push:{"hobby":1234}} [].append(1234) #$pull : 删除数组中的某一个元素 {$pull:{"hobby":123}} #删除字典 #db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.age":18},{$unset:{"hobby.$":1}}) #$pop : 删除数组的第一个或最后一个 #最后一个:{$pop:{"hobby":1}} #第一个:{$pop:{"hobby":-1}} #$ :代指符合条件的某数据 array.$ : #db.user.updateOne({"_id":ObjectId("5b98794ec34b9812bcabdde7"),"hobby.name":"翠花儿"},{$set:{"hobby.$.name":"农妇山泉"}}) #查询$关键字: #$in: db.user.find({age:{$in:[1,2,3]}}) 字段符合in,array中的数值 #$or: db.user.find({$or:[{age:{$in:[1,2,3,4]}},{name:666}]}) #$all: db.user.find({test:{$all:[1,2]}}) array元素相同即可 或 包含所有$all中的元素
7.数据类型:
#基于BSON结构 #string 字符串,Utf8 #integer 整型 #double 双精度,包含float,MongoDB中不存在Float #Null 空数据类型 #Date 时间类型 ISODate(2018-9-12 10:45:58) #Timestamp 时间戳类型 ISODate("123123") #ObjectId 对象ID Documents 自生成的 _id #ObjectId("5b98794ec34b9812bcabdde7") #"5b151f85" 代指的是时间戳,这条数据的产生时间 #"364098" 代指某台机器的机器码,存储这条数据时的机器编号 #"09ab" 代指进程ID,多进程存储数据的时候,非常有用的 #"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的 #以上四种标识符拼凑成世界上唯一的ObjectID #只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换 #可以得到以上四种信息 #不能够被 JSON 化 #from BSON import ObjectId #?arrays [] 数组类型 相当于python中的list $pop $push $pull #?object {name:1} 对象类型 相当于python中的dict #ps:由于MongoDB存储自由度没有限制,所以我们程序员要定义好数据格式,尽可能少的修改格式(开发阶段随便修改)
8. 排序 跳过 显示条目
#sort 排序 find().sort(id:-1/1) 1 升序 2 降序 desc #skip 跳过 find().skip(2) 从三条开始返回 #limit 显示条目 find().limit(2)只显示前两条 #混搭: #db.user.find({}).sort({age:-1 }).skip(1).limit(2) #根据age字段进行降序排列,并且跳过第一条,从第二条开始返回,两条数据
9.pymongo:
#sort("age",pymongo.DESCENDING)
标签:redis 出现 des hide 行数据 ODB set opened obj
原文地址:https://www.cnblogs.com/chongdongxiaoyu/p/9635329.html