mongoDB常用命令

本文详细介绍MongoDB的基础操作,包括查询、更新、删除等,并通过实例演示如何使用聚合框架进行复杂的数据处理。
  1. db.person.find()
  2. db.person.remove()
  3. db.person.drop()//速度更快但不能指定限制条件
  4. //定义方法
  5. function f(n){
  6. if(n<=2){
  7. return 1
  8. }else{
  9. return f(n-2) + f(n-1)
  10. }
  11. }
  12. f(4)
  13. //替换操作
  14. "wangzs , hello word!".replace("word","xxxxx");
  15. person={"name":"wangzs2","age":27,"address":"xujingdong","date":new Date()};
  16. db.person.insert(person);
  17. db.person.findOne()
  18. //更新
  19. db.person.update({"name":"wangzs2"},{"$set":{"comments":[]}})
  20. //插入的数据类型
  21. db.person.insert({"a":"","b":null,"c":2,"d":3.12,"e":true,"f":NumberInt(8),"g":NumberLong(9),
  22. "h":"hello","i":new Date(),"j":["1","2","3"],"k":{"name":"wangzs","age":"27"}})
  23. //帮助命令
  24. db.help()
  25. db.person.help()
  26. sh.help()
  27. show dbs
  28. show collections
  29. show users
  30. //查看函数实现代码,参数顺序
  31. db.person.update
  32. //批量插入
  33. db.person.insertMany([{"name":"name1"},{"name":"name2"},{"name":"xxxx"}])//无法执行
  34. db.person.insert({"name":"name1","age":25,"address":"上海"})
  35. //把age的值加1
  36. db.person.update({"name":"name1"},{"$inc":{"age":1}})
  37. //更新
  38. db.person.update({"name":"name1"},{"$set":{"books":"java"}})
  39. db.person.update({"name":"name1"},{"$set":{"books":["mongodb","javascript","hello"]}})
  40. //删除不要字段
  41. db.person.update({"name":"name1"},{"$unset":{"books":1}})
  42. //comments添加内容
  43. db.person.update({"name":"wangzs"},{"$push":{"comments":{"星级":"*****","评论":"五星好评"}}})
  44. db.person.update({"name":"name1"},{"$push":{"address":{"$each":[23,"88","youxiu"]}}})
  45. //$addToSet避免插入重复地址
  46. db.person.update({"name":"name1"},{"$addToSet":{"address":{"$each":[23,"youxiu","charu","hello"]}}})
  47. db.person.insert({"todo":["A","B","C","A","A"]})
  48. //删除数组中所有匹配的结果
  49. db.person.update({},{"$pull":{"todo":"A"}})
  50. //第三个参数ture,存在更新,如果不存在就创建
  51. db.person.update({"name":"wangzs5"},{"$inc":{"age":3}},true)
  52. //第4个参数true更新所有匹配的文档
  53. db.person.update({"name":"wangzs"},{"$set":{"gift":"happy bitthday"}},false,true)
  54. var person=db.person.find({"name" : "wangzs"})
  55. person.name="wangss"
  56. //包含_id更新,不包含_id保存
  57. db.person.save(person)//运行有问题
  58. //查找并且更新 只是1个
  59. db.runCommand({"findAndModify":"person",
  60. "query":{"name":"wangzs"},
  61. "update":{"$set":{"address":"zhoukou"}}
  62. }).value
  63. //查找并且删除 只是1个
  64. db.runCommand({"findAndModify":"person",
  65. "query":{"name":"wangzs"},
  66. "remove":true
  67. }).value
  68. //指定_id不显示,只显示name,address
  69. db.person.find({},{"_id":0,"name":1,"address":1})
  70. // 18<=age<=30
  71. db.person.find({"age":{"$gte":18,"$lte":30}})
  72. // name!=wangzs2
  73. db.person.find({"name":{"$ne":"wangzs2"}})
  74. // name in ("wangzs","wangzs3",123)
  75. db.person.find({"name":{"$in":["wangzs","wangzs3",123]}})
  76. // name not in ("wangzs","wangzs3",123)
  77. db.person.find({"name":{"$nin":["wangzs","wangzs3",123]}})
  78. // or
  79. db.person.find({"$or":[{"age":30},{"name":{"$nin":["wangzs","wangzs3",123]}}]})
  80. //返回parents=null和不包括返回parents字段的所有结果
  81. db.person.find({"parents":null})
  82. //返回包括parents字段但是该字段是null的结果 $exists:判断键值存在
  83. db.person.find({"parents":{"$in":[null],"$exists":true}})
  84. //正则表达式 模糊匹配*wangzs*
  85. db.person.find({"name":/wangzs/})
  86. db.person.insert({"name":["A","B","C"]})
  87. db.person.insert({"name":["E","K","C"]})
  88. db.person.insert({"name":["U","D","C","D","W"]})
  89. //name数组包含A和C
  90. db.person.find({"name":{"$all":["A","C"]}})
  91. //name数组长度为3的结果
  92. db.person.find({"name":{"$size":3}})
  93. //name数组前2个位置
  94. db.person.find({},{"name":{"$slice":2}})
  95. //name数组后2个位置
  96. db.person.find({},{"name":{"$slice":-2}})
  97. //name数组后3-5位置
  98. db.person.find({},{"name":{"$slice":[3,5]}})
  99. db.person.insert({"name":"wangzs","address":[{"city":"shanghai","tel":"135"},{"city":"henan","tel":"888"}]})
  100. //显示两条结果
  101. db.person.find({"address.city":"shanghai","address.tel":"888"})
  102. //elemMatch将限定条件进行分组
  103. db.person.find({"address":{"$elemMatch":{"city":"shanghai","tel":"888"}}})
  104. //遍历结果
  105. var cursor=db.person.find()
  106. while(cursor.hasNext){
  107. obj = cursor.next()
  108. print(obj)
  109. }
  110. var cursor=db.person.find()
  111. cursor.forEach(function(x){
  112. print(x.A+" - " +x.C)
  113. })
  114. //限制返回2条结果
  115. db.person.find().limit(2)
  116. //跳过前2条结果
  117. db.person.find().skip(2)
  118. //排序 1:升序 2:降序
  119. db.person.find().sort({"A":1,"C":-1})
  120. //查看所有数据库命令
  121. db.listCommands()
  122. //explain 显示执行查询过程中做的事情
  123. db.person.find({"name":"name221"}).explain()
  124. db.person.find({"name":"name221"}).limit(1).explain()
  125. //name建立索引
  126. db.person.ensureIndex({"name":1})
  127. //name,age建立索引
  128. db.person.ensureIndex({"name":1,"age":1})
  129. //建立唯一索引
  130. db.person.ensureIndex({"name":1},{"unique":true})
  131. //删除索引
  132. db.person.dropIndex({"name":1})
  133. db.person.getIndexes() //无法执行
  134. //查看索引创建的进度
  135. db.currentOp()
  136. //穿件唯一索引,重复的删除
  137. db.person.ensureIndex({"name":1},{"unique":true,"dropDups":true}) //无法执行
  138. //聚合函数
  139. db.person.aggregate(
  140. {"$match":{"name":"name5"}},// 对文档集合进行筛选
  141. {"$project":{"name":1}}, // 选择需要投射的字段
  142. {"$group":{"_id":"$name","count":{"$sum":1}}},
  143. {"$sort":{"count":-1}},
  144. {"$limit":5}
  145. )
  146. //按照多个字段分组
  147. db.person.aggregate(
  148. {"$group":{"_id":{"name":"$name","age":"$age"},"count":{"$sum":1}}},
  149. {"$sort":{"count":-1}}
  150. )
  151. //分组后找到最大值最小值
  152. db.person.aggregate(
  153. {"$group":{"_id":"$name","lowage":{"$min":"$age"},"highage":{"$max":"$age"}}}
  154. )
  155. //把id重命名为userid,不显示_id,显示name
  156. db.person.aggregate(
  157. {"$project":{"userid":"$_id","_id":0,"name":1}}
  158. )
  159. db.person.insert({"name":"wangzs1","num1":12,"num2":5})
  160. db.person.insert({"name":"wangzs2","num1":8,"num2":9})
  161. //把num1和num2的值相加
  162. db.person.aggregate(
  163. {"$project":
  164. {"result":
  165. {"$add":["$num1","$num2"]}
  166. }
  167. }
  168. )
  169. db.person.insert({"name":"wangzs2","hireDate":new Date()})
  170. db.person.insert({"name":"wangzs2","hireDate":new Date("2016/08/07")})
  171. db.person.insert({"name":"wangzs2","hireDate":new Date("2016/05/07")})
  172. //返回每个雇员入职的月份
  173. db.person.aggregate(
  174. {"$project":{"hiredIn":{"$month":"$hireDate"}}}
  175. )
  176. //返回员工在公司工作的月数
  177. db.person.aggregate(
  178. {"$project":{"workTime":
  179. {"$subtract":[{"$month":new Date()},{"$month":"$hireDate"}]}
  180. }}
  181. )
  182. db.person.insert({"name":"wangzs2","address":"henan"})
  183. //取name前两位拼接邮箱号
  184. db.person.aggregate({
  185. "$project":
  186. {"email":
  187. {"$concat":[{"$substr":["$name",0,2]},".","$address",".","dongh.com"]}
  188. }
  189. })
  190. db.person.count({"name":"wangzs2"})
  191. //person集合中name的不同数量
  192. db.person.runCommand({"distinct":"person","key":"name"})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值