mongodb操作集锦

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"}}})

猜你喜欢

转载自annan211.iteye.com/blog/2323224