mongodb操作集锦

[size=large]1 mongodb 创建数据库
shell>use mon
2 插入
shell> db.mon.insert({"name":"ppo","age":10})
3 删除全部文档
shell> db.mon.drop();
4 删除指定记录(参数为查询器)
shell> db.mon.drop({_id:2})
5 更新记录(参数为查询器 修改器)
shell> db.mon.update({_id:2},{$set:{name:"009"}})
6 更新记录 存在域则更新,不存在则追加,sex域存在则更新为1,不存在则追加为1
shell> db.mon.update({_id:2},{$set:{sex:1}},true)
7 更新记录 批量更新 参数列表为 查询器,更新器,存在则更新不存在则追加,是否批量更新
shell>db.mon.update({_id:2},{$set:{sex:1}},false,true)
8 域的累加 将id为2的年龄累加10
shell>db.mon.update({_id:2},{$inc:{age:10}}})
9 删除存在的域,则会将id为2的文档中的age域删除
shell>db.mon.update({_id:2},{$unset:{age:10}})
10 mongodb 插入数组
shell>db.mon.update({_id:2},{$push:{books:"javascript"}})
mongodb 数组的批量压入
shell>db.mon.update({_id:2},{$pushAll:{books:["c","java","c++"]}})
11 插入重复值addToSet,如果指定的books已经存在,则不会重复插入,不存在才会插入,与set集合相似
shell>db.mon.update({_id:2},{$addToSet:{books:"java"}})
12 集合删除操作(pop,1则删除最后一个元素,-1删除第一个元素)
shell>db.mon.update({_id:2},{$pop:{books:-1}})
13 删除集合中指定的数据
shell>db.mon.update({_id:2},{$push:{books:"js"}})
批量删除
shell>db.mon.update({_id:2},{$pushAll:{books:["js,"java"]}})
14 addToSet 与each结合批量数组更新
shell>db.mon.update({_id:2},{$addToSet:{books:{$each:["js","java"]}}})

15 复杂查询
1 查询年龄在25-27之间的学生,列出其姓名以及年龄
shell>db.mon.find({age:{$gte:25,$lte:27}},{_id:0,name:1,age:1})

2 查询不叫小明的所有学生
shell>db.mon.find({name:{$ne:"小明"}},{_id:0,name:1,age:1})

3 查询不在范围的数据 $in 不举例
shell>db.mon.find({age:{$nin:["10","30"]}})

4 查询英语成绩大于85 或者 语文成绩大于80的学生
shell>db.mon.find({$or:[{yingyu:{$gt:85}},{yuwen:{$gt:80}}]},{_id:0,name:1,age:1})

5 正则查询 查出含有fuck 的用户
shell>db.mon.find({name:/fuck/i})

6使用all查询
shell>db.mon.find({books:{$all:["js","java"]}})

7 数组索引下标查询
shell>db.mon.find({"books.1":"java"})

8 解决顺序/并且查询
shell>db.mon.find({"school.score":"A","school.name":"BB"},{_id:0})

9 单条条件组查询$elemMatch
shell>db.mon.find({school:{$elemMatch:{school:"K",score:"A"}}})
[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

annan211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值