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 是 nin是in取反(注意:运算符前面一定要加一个符号 打不出来,下面例子里有)
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}}]})
2384

被折叠的 条评论
为什么被折叠?



