MongoDB 基本操作数据(增删改查去重)

目录

1.插入数据

插入单条数据 insertOne()

批量插入数据 insertMany()

2.查询数据

三种显示模式

查询固定值顺序

3.查询范围值数据

4.限定返回哪些字段

5.修饰返回结果

(1)count()-----满足要求的数据有多少条

(2)limit()-----限定返回结果

(3)sort()-----对查询结果排序

6.更新数据 Updata()

7.删除数据 delete()

8.数据去重 distinct()


1.插入数据

插入单条数据 insertOne()

insertOne({"name":"zjk",'age':20,'add':'zhuhai'})

可插入不同类型的数据,遇见新的字段添加上去就是了,以 json 格式插入

 

 

批量插入数据 insertMany()

data_list = [
    {'name':'抓紧','age':40,'addr':'china'},
    {'name':'lalal','age':20,'addr':'us'},
    {'name':'nbn','age':30,'addr':'ak'}
]
db.getCollection('example_data_1').insertMany(data_list)

无论是插入一条还是多条,都会生成一个唯一 _id 字段,是唯一的,任何机器,任何时间。任何进程来生成的

 

 

2.查询数据

双击集合中的名字,实际是执行了这条语句 db.getCollection('example_data_1').find({})

查询空值为 null,.find({'name':null})

三种显示模式

是 Robo 3T,提供的,树新模式,表格模式,文本模式

 

 

 

 

查询固定值顺序

(1)查询所有数据

db.getCollection('example_data_1').find({})

(2)查询特定数据

db.getCollection('example_data_1').find({'字段1':'值1','字段2':'值2'})

 

 

 

3.查询范围值数据

db.getCollection('example_data_1').find({'字段1':{'操作符1':边界1,'操作符2':边界2}})

 查询 age 字段,大于等于 20,小于等于 30

db.getCollection('example_data_1').find({'age':{'$lte':30,'$gte':20}})

 查询 age  字段,大于等于 20,小于等于 30,name 字段不等于 zjk

db.getCollection('example_data_1').find({'age':{
                                                '$lte':30,
                                                '$gte':20
                                                },
                                        'name':{
                                                '$ne':'zjk'}
                                        })

 

 

4.限定返回哪些字段 find({},{})

find() 有两个参数,第一个过滤不同的记录,第二个修改返回的字段,就是想要哪些返回,哪些不返回

第二个参数有两个值

  • 0,表示返回的字段中,剔除值为 0 的值
  • 1,表示只返回值为 1 的值

查询所有数据,但不返回,addr,age,这两个值

查询所有数据,只返回 name,age 字段

但都会返回 _id 字段,想要剔除可设为 0;

除了 _id 字段,其他字段不能 0,1 混用,要么全 1,要么全 0

 

 

5.修饰返回结果

(1)count()-----满足要求的数据有多少条

 

(2)limit()-----限定返回结果

查询结果多时,可以限定返回总数,不足的话,有多少就返回多少

 

(3)sort()-----对查询结果排序

sort({'字段名':-1 或 1}) ,1 代表正序,2 代表倒序

复制到 python 中是 sort('age',1)

 

 

6.更新数据 Updata()

updataOne() :更新一条

updataMany():更新多条

有两个参数,第一个和 find 的第一个参数一样,是一个字典,永凯寻找所需要被更新的记录;第二个也是一个字典,它的 Key 为 $set ,它的值为另一个字典,是需要被修改的字段名和新的值

更新 name 为 小二,age 修改为 20,添加 work 为 student,修改前后对比:

db.getCollection('example_data_1').updateMany(
    {'name':'小二'},
    {'$set':{'age':20,'work':'stident'}}
)

 

 

 

7.删除数据 delete()

deleteOne:删除一条

deleteMany:删除多条

删除 age 为 20 的数据,如下,第一个字段为 true 代表删除成功,第二个代表删除了多少条

 

 

8.数据去重 distinct()

两个参数,第一个去重字段,第二个去重条件(可选)

对 age 大于等于 18 的去重,

db.getCollection('example_data_1').distinct(
    'age',
    {'age':{'$gte':18}}
)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值