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字节是计数器

原文链接

posted @ 2022-11-17 21:18  三省吾身~  阅读(112)  评论(0)    收藏  举报