MongoDB的增删改查

02-MongoDB的增删改查

一.插入数据

{name:'岁岁'}

文档是一个键值对(key-value)(基于json格式 一个扩展格式)

每一条数据被添加到集合中之后 都会自动添加主键 文档主键就叫_id

  {"_id" : ObjectId("65221ae8b15689a6cef4a1a3"), "name" : "小李"}

1.insert()插入一条数据

1 db.表名.insert()

db.stu.insert({x:1})

db.stu.insert({name:'jake', name:'mark'})	# 如果字段名一样 会保留最后一对

2.insertOne()插入一条数据

db.表名.insertOne({name:'韩学松',age:20}) # 作为一条数据插入

insertMany([{},{},{}])插入多条数据

#一个{}代表一条数据占一行

insertMany([]) # 一定要有[]
db.stu.insertMany([{age:18},{age:20},{height:189}])  # 一次性插入三条数据

3.for循环插入多条

 for(i=3;i<10;i++)db.stu1.insert({x:i})

#插入的是3-9

for i in range(3,10):
	 db.stu1.insert({x:1})

4.save() #数据的修改

#用save如果不指定_id插入数据 跟insert一样的作用
db.stu1.save(hometown:‘河北’) # 在表中插入hometown:‘河北’

#指定id插入 能找到就会更新 没找到就插入

二.查询数据

1.单条件查询

db.stu.find() # 返回当前集合中所有数据

db.stu2.findone({name:'jack'}) # 返回集合中第一条name=jake的数据

#精准查询

db.stu2.find({name:'jack'}) # 只有文档中包含了name=jack 都会返回

2.多条件查询

返回表中age=18 gender=‘女’

db.stu2.find({age:18,gender:'女'}) # 只要数据包含下面两个字段就会返回

db.stu2.find({age:18},{gender:'女'})

db.stu.find([{age:18},{gender:'女'}]) # 错误

3.范围运算符

db.stu3.find({age:{$in:[18,40]}})  # 返回的是年龄18或者40

db.stu3.find({age:{$in[16,40]}})  # 返回的是年龄16或者40

# n i n 是 nin 是 ninin取反(注意:运算符前面一定要加一个符号 打不出来,下面例子里有)

db.stu3.find({age:{$nin:[40]})  # 年龄不是40都返回

#查询年龄大于16 并且小于40的数据?

{age:{$gt:16}}  {age:{$lt:40}}

db.stu3.find({age:{$gt:16,$lt:40}})

4.比较运算符

lt: less than 小于
gt: greater than 大于
lte: less than equal 小于等于
gte: greater than equal 大于等于
ne 不等于
eq 等于

#查询年龄大于18

db.stu3.find({age:{$gt:18}})

#查询年龄大于20

db.stu3.find({age:{$gt:20}})

#查询年龄等于18

db.stu3.find({age:18})
db.stu3.find({age:{$eq:18}})

#查询年龄小于20

db.stu3.find({age:{$lt:20}})

5.逻辑运算符
or and

#查询年龄等于18 或者 性别为false的数据

{age:18} {genter:false}

db.stu3.find({$or:[{age:18},{genter:false}]})

#查询年龄等于18 并且 性别为true的数据
{age:18} {genter:true}

db.stu3.find({$and:[{age:18},{genter:true}]})

#查询年龄不是18 或者 性别不为false的数据

{age:{$ne:18}}  {genter:{$ne:false}}

db.stu3.find({$or:[{age:{$ne:18}},{genter:{$ne:false}}]})
db.stu3.find({$or:[{age:{$ne:18}},{genter:{$nin:false}}]})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值