前戏:
启动Mongodb mongod --dbpath "数据库目录" 默认端口 27017show dbs 查看所有存在磁盘上的数据库
show tables 查看当前数据库存在磁盘上的数据表use 数据库 创建数据库或切换数据库
######使用了不能存在的对象即创建该对象######
数据库.表名 创建表
概念:
Mysql: id name age duixiang hobby 1 jwb 73 2 2 2 ywb 84 1 null
MongoDB:
[ { "id":1, "name":"jwb", "age":73, "hobby":["ywb","lwb"], "duixiang":{ "id":2, "name":"ywb", "age":84 } }, { "id":2, "name":"ywb", "age":84, "duixiang":{ "id":1, "name":"jwb", "age":73, } } ]
mysql mongodb
数据库 数据库表 collections列 Fieldrow documents数据增删改查
增加 insert#db.user.insert({"id":1,"name":"jwb","age":73})
官方推荐写法
db.user.insertMany([{}]) db.user.insertOne({})
查看 find
db.user.find()db.user.findOne({})db.user.find({ "id":2,"age":85}) 并列条件或条件:$or : db.user.find({$or:[{age:73},{name:"ywb"}]})同一个字段的 或条件$in : db.user.find({age:{$in:[73,84,86]}})子集检索db.user.find({what:{$in:[2,1]}})$all : 满足所有条件db.user.find({what:{$all:[2,1,3]}})
数学比较符:
$gt : 大于 db.user.find({age:{$gt: 73}})$gte: 大于等于$lt : 小于$lte: 小于等于$eq : 等于 :也是等于
"_id" : ObjectId("5c3e84cf1e235402547fa40c")
更新:update 修改器 $set
#db.user.update({"age":84}, {$set:{"username":"jinjiaodawangba"}})官方推荐写法:db.user.updateOne({ "name":"jwb"},{$set:{ "age":99}})db.user.updateMany({ "name":"jwb"},{$set:{ "age":99}})
删除:remove / delete
#db.user.remove({"age":85})官方推荐写法:db.user.deleteOne({ "name":"jwb"})db.user.deleteMany({ "name":"jwb"})
$修改器:
$set : 暴力修改 $unset : 暴力删除字段 db.user.updateOne({ "name":"ywb"},{$unset:{ "hobby":1}})$inc : 引用增加 在原有值的基础上增加 db.user.updateMany({},{$inc:{age:1}})array修改器:$push 增加元素 :db.user.updateOne({ "name":"ywb"},{$push:{ "hobby":"jwb"}})$pull 删除元素 :db.user.updateOne({ "name":"ywb"},{$pull:{ "hobby":"jwb"}})$pushAll 迭代增加 :db.user.updateOne({ "name":"ywb"},{$pushAll: { "hobby":[1,2,3]}})$pop 删除最后一条数据/第一条 :最后一条 db.user.updateOne({ "name":"ywb"},{$pop:{ "hobby":1}})第一条 db.user.updateOne({ "name":"ywb"},{$pop:{ "hobby":-1}})$ 字符:["hj","tt",1,2] # {"hobby":"hj"} hj 是hobby列表中的第0个元素 就把 0 这个数据放在了 $ 中db.user.updateMany({hobby:"hj"},{$set:{ "hobby.$":"喝酒"}})
###### $ 存储符合条件的元素下标索引 ######
Object操作
db.user.updateOne({ "kecheng.name":"python"},{$set:{ "kecheng.price":19800}})db.user.updateOne({ "kecheng.name":"python"},{$inc:{ "kecheng.price":500}})Array中的Objectdb.user.updateOne({ "hobby.age":84},{$set:{ "hobby.$.age":73}})Object中的Arraydb.user.updateOne({ "kecheng.class":15},{$set:{ "kecheng.class.$":20}})
数据类型:
ObjectID :Documents 自生成的 _idString: 字符串,必须是utf-8
Boolean:布尔值,true 或者false (这里有坑哦~在我们大Python中 True False 首字母大写) Integer:整数 (Int32 Int64 你们就知道有个Int就行了,一般我们用Int32) Double:浮点数 (没有float类型,所有小数都是Double)Arrays:数组或者列表,多个值存储到一个键 (list哦,大Python中的List哦)
Object:如果你学过Python的话,那么这个概念特别好理解,就是Python中的字典,这个数据类型就是字典 Null:空数据类型 , 一个特殊的概念,None NullTimestamp:时间戳
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
MongoDB中的跳过选取排序:
skip(5) 跳过五条数据 limit(5) 只显示五条数据 分页 skip(5).limit(5)sort({age:1}) 正序
sort({age:-1}) 倒序pymongo排序 sort("key",pymongo.AESCENDING = 1)
ymongo排序 sort("key",pymongo.DESCENDING = -1)如果三个关键字同时出现
1.sort 2.skip 3.limit