MangoDB的增删改查与数据类型
一、数据库准备
mangodb的数据库特性:数据库中的库和表中没有数据无则法显示出来,MongoDB中如果你使用了不存在的对象,那么就等于你在创建这个对象!
MongoDB操作 之 原生ORM,根本不存在SQL语句
1.1 创建一个数据库:
show databases // 查看所有数据库
# 有则进入tab数据库,没有则新增,mangodb数据库,如果数据库中没有数据,则不能看见
数据库及其表
use tab // 切换到tab数据库
db // 指定db为当前数据库tab
二、MongoDB 之 插入数据(insert insertOne insertMany)
insert:插入一条或者多条数据,需要带有允许插入多条的参数,这个方法目前官方已经不推荐!
# insert:插入一条或者多条数据,需要带有允许插入多条的参数,这个方法目前官方已经不推荐
db.stu1.insert({"name":"annie","age":20})
# insertOne: 插入一条数据,官方推荐
db.stu1.insertOne({"name":"annie","age":20})
# insertMany:插入多条数据,无需参数控制,官方推荐
db.stu1.insertMany([{"name":"annie","age":20}, {"name":"anddy","age":13}])
三、数据库的查询命令(find findOne)
# find() 无条件查找:将该表(Collection)中所有的数据一次性返回
db.stu1.find()
# 指定查找数据库中name为annie的所有数据
db.stu1.find({"name":"annie"})
# findOne()无条件查找一条数据,默认当前Collection中的第一条数据
db.stu1.findOne()
# 指定查找数据库中name为annie的第一条数据
db.stu1.findOne({"name":"annie"})
四、数据库的更新命令(updata updateOne updateMany)
MongoDB 之 修改数据(update updateOne updateMany) 之 跟insert一样,不推荐update的写法
注意的是({"条件"},{"关键字":{"修改内容"}}),其中如果条件为空,那么将会修改Collection中所有的数据
$set:{"name":"WSSB"}解释一下: $set 是update时的关键字,表示我要设置name属性的值为"WSSB"
那么我们之前说过MongoDB的灵活性,没有就代表我要创建,所以说如果该条Documents(记录)没有name属性,他就会自动创建一个name属性并且赋值为"WSSB"
MongoDB 之 修改数据(update updateOne updateMany) 之 跟insert一样,不推荐update的写法
# 把name等于annie的所有数据中name改为21
db.stu1.update({"name":"annie"},{$set:{"age":21}})
# 把age等于19的所有数据中第一条数据的name改为WSSB
db.stu1.updateOne({"age":19},{$set:{"name":"WSSB"}})
# 把age等于19的所有数据中的name改为pig_qi
db.stu1.updateMany({"age":19},{$set:{"name":"pig_qi"}})
五、数据库的删除命令(remove)
remove({}):无条件删除数据,这里要注意了,这是删除所有数据,清空Collection
# 无条件删除数据,这里要注意了,这是删除所有数据,清空Collection
db.stu1.remove({})
# 删除指定数据,这里删除name等于annie的记录
db.stu1.remove({"name":"annie"})
六、MangoDB的数据类型
Object ID :Documents 自生成的 _id
String: 字符串,必须是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 Null
Timestamp:时间戳
Date:存储当前日期或时间unix时间格式 (我们一般不用这个Date类型,时间戳可以秒杀一切时间类型)
6.1 Object ID : 对象类型

"_id" : ObjectId("5b151f8536409809ab2e6b26")
#"5b151f85" 代指的是时间戳,这条数据的产生时间
#"364098" 代指某台机器的机器码,存储这条数据时的机器编号
#"09ab" 代指进程ID,多进程存储数据的时候,非常有用的
#"2e6b26" 代指计数器,这里要注意的是,计数器的数字可能会出现重复,不是唯一的
#以上四种标识符拼凑成世界上唯一的ObjectID
#只要是支持MongoDB的语言,都会有一个或多个方法,对ObjectID进行转换
#可以得到以上四种信息
#注意:这个类型是不可以被JSON序列化的
# 这是MongoDB生成的类似关系型DB表主键的唯一key,具体由24个字节组成:
0-8字节是时间戳,
9-14字节的机器标识符,表示MongoDB实例所在机器的不同;
15-18字节的进程id,表示相同机器的不同MongoDB进程。
19-24字节是计数器

浙公网安备 33010602011771号