安装

  1. 1.下载地址
  2. https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.8-signed.msi
  3. 2.如果报没有权限的错,将配置文件的.cfg的最后一行的mp:删除
  4. 3.4.0版本已将mongodb加入了系统服务,开机自启
  5. win+R>>>服务>>>mongodb
  6. 4.此时没有任何的权限限制,默认是管理员
  7. 5.在.cfg文件中修改
  8. security
  9. authorization: enabled
  10. # 注意缩进
  11. 6.重启服务
  12. 7.mongo >>>>show dbs(未登陆没有任何库显示)
  13. 8.登陆 use admin
  14. db.auth("root","root")>>>>>1登陆成功后显示1
  15. show dbs>>>登陆成功后显示所有库

库的操作

  1. 创建数据库
  2. use 数据库名称 #如果数据库存在切换,如果不存在新建并切换
  3. #新建的库里没有没有数据,使用show dbs是不会显示的
  4. 查看数据库
  5. show dbs
  6. 删除数据库
  7. db.dropDatabase()
  8. #区分大小写

集合的操作(相当于mysql的表)

  1. use 数据库 先切到数据库
  2. #创建集合
  3. db.user
  4. #查看集合
  5. show collections or show tables#与库相同,集合中没有数据不会显示
  6. #删除集合:
  7. db.blog.user.drop()

数据类型

  1. #null:用于表示空或不存在的字段
  2. {"x":null}
  3. #布尔型:true 和 false
  4. {"x":true,"y":fasle}
  5. #数值
  6. {"x":3,"y":3.1414}
  7. #字符串
  8. {"name":"egon"}
  9. #日期
  10. d = {"x":new Date()}
  11. d.x.getHours()
  12. #正则表达式/ /
  13. d={'pattern':/^egon.*?nb$/i}
  14. #数组
  15. d={'x':[1,'a','v']}
  16. #内嵌文档
  17. user={'name':'jerry','addr':{'country':'China','city':'YT'}}
  18. user.addr.country
  19. #对象id:是一个12字节的ID,是文档的唯一标识,不可变
  20. d={'x':ObjectId()}
  21. #案例:
  22. db.test.insert({"a":null,"b":1.1,"c":true,"d":100,"e":"aaaaaa","f":new Date(),"g":/^jerry.*nice$/i,"h":[1,2],"j":{"name":"smallJerry"}})
  23. db.tb.find()
  24. db.tb.find().pretty() # 格式化显示 findOne没有pretty()方法

文档操作

  1. #没有指定_id则默认ObjectID,_id不能重复,且在插入后不可变
  2. #插入单条
  3. db.test.insert({"_id":1,"name":"zb","age":18})
  4. #无则插入,有则覆盖
  5. db.test.save()
  6. #插入多条
  7. db.test.insertMany([{"_id":2,"name":"egon","age":28},{"_id":3,"name":"yhh","age":38}])

查询数据

  1. #cmd清屏 cls
  2. #find
  3. 查询所有匹配数据
  4. #findOne
  5. 查找第一个匹配的

比较运算

  1. use db
  2. db.表名.find(条件)
  3. 比较运算
  4. #等于
  5. = >>>> {"name":"zb"}
  6. db.test.find({"name":"zb"})
  7. #不等于
  8. != >>>>{"name":{"$ne":"zb"}}
  9. db.test.find({"name":{"$ne":"zb"}})
  10. #大于
  11. > >>>>{"_id":{"$gt":1}}
  12. db.test.find({"_id":{"$gt":1}})
  13. #大于等于
  14. >= >>>>{"_id":{"$gte":1}}
  15. db.test.find({"_id":{"$gte":1}})
  16. #小于
  17. < >>>>{"_id":{"$lt":3}}
  18. db.test.find({"_id":{"$lt":3}})
  19. #小于等于
  20. <= >>>>{"_id":{"lte":3}}
  21. db.test.find({"_id":{"$lte":3}})

逻辑运算

  1. #and 逗号分隔,多个条件就是and
  2. db.test.find({"_id":{"$lt":3,"$gt":1}})
  3. db.test.find({"_id":{"$lte":3,"$gt":1},"name":"egon"})
  4. #or
  5. db.test.find({"$or":[{'_id':{"$gte":3}},{"name":"zb"}]})
  6. #偶数 mod
  7. db.test.find({'_id':{"$mod":[2,1]}})#[2,1]>>除21
  8. #not
  9. db.test.find({'_id':{"$not":{"$mod":[2,1]}}})

成员运算

  1. #in
  2. db.test.find({"_id":{"$in":[1,3]}})
  3. #not in
  4. db.test.find({"_id":{"$nin":[1,3]}})

正则表达式

  1. db.test.find({"name":/.*?z.*?/})
  2. 正则写在//内,后面的i代表:
  3. i 忽略大小写
  4. m 多行匹配模式
  5. x 忽略非转义的空白字符
  6. s 单行匹配模式

指定字段

  1. #db.user.finde({过滤条件},{显示字段})
  2. db.test.find({'_id':3},{'_id':0,'name':1})
  3. 0表示不显示 默认为0 1为显示 "_id"默认为1

查询数组

  1. #准备数据
  2. use test1
  3. db.user
  4. user1 = {"_id":1,"name":"egon","hobbies":["play","girl","music","run"]}
  5. user2 = {"_id":2,"name":"alex","hobbies":["swim","girl","drink","tea"]}
  6. user3 = {"_id":3,"name":"yhh","hobbies":["girl","tea","fight","run"]}
  7. user4 = {"_id":4,"name":"aaa","hobbies":["run","girl","chicken","ball"]}
  8. db.user.insert(user1)
  9. db.user.insert(user2)
  10. db.user.insert(user3)
  11. db.user.insert(user4)
  12. #查询
  13. #查询爱好有girl的人
  14. db.user.find({'hobbies':'girl'})
  15. #查询爱好girl和drink的人
  16. db.user.find({"hobbies":{"$all":["girl","drink"]}})
  17. #查询第4个爱好为tea的人
  18. db.user.find({"hobbies.3":"tea"})
  19. #查询所有人最后两个爱好
  20. db.user.find({},{'hobbies':{"$slice":-2}})
  21. #查询所有人的第2个到第3个爱好
  22. db.user.find({},{"hobbies":{"$slice":[1,2]}})

其他

  1. # 排序:1代表升序,-1代表降序
  2. db.user.find().sort({"_id":-1})
  3. db.user.find().sort({"name":-1,'_id':-1})
  4. #分页:limit代表取多少个document,skip代表跳过前几个document
  5. db.user.find({'hobbies':'girl'}).limit(1).skip(2)
  6. #获取数量
  7. db.user.count({'hobbies':'girl'})
  8. db.user.find({'hobbies':'girl'}).count()
  9. #{'key':null} 匹配key的值为null或者没有这个key
  10. #准备数据
  11. db.t2.insert({'a':10,'b':111})
  12. db.t2.insert({'a':20})
  13. db.t2.insert({'b':null})
  14. #查询结果
  15. > db.t2.find({"b":null})
  16. { "_id" : ObjectId("5a5cc2a7c1b4645aad959e5a"), "a" : 20 }
  17. { "_id" : ObjectId("5a5cc2a8c1b4645aad959e5b"), "b" : null }

mongodb安装,库操作,集合操作(表),文档操作(记录)的更多相关文章

  1. MongoDB学习(操作集合中的文档)

    文档概念 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 insert()方法 ...

  2. python全栈开发day48-jqurey自定义动画,jQuery属性操作,jQuery的文档操作,jQuery中的ajax

    一.昨日内容回顾 1.jQuery初识 1).使用jQuery而非JS的六大理由 2).jQuery对象和js对象转换 3).jQuery的两大特点 4).jQuery的入口函数三大写法 5).jQu ...

  3. HTML jQuery 文档操作 - html() 方法

    jQuery 文档操作 - html() 方法 jQuery 文档操作参考手册 实例 设置所有 p 元素的内容: $(".btn1").click(function(){ $(&q ...

  4. MongoDB系列---集合与文档操作03

    MongoDB-——Collection 学习大纲: 1.集合操作 2.文档操作 知识回顾: 上一篇我们讲述了如何对MongoDB的权限和用户进行日常的基本操作,来达到我们对数据库的基本安全保障. 一 ...

  5. MongoDB 集合与文档操作

    一.创建DB 1.查看DB >show dbs 2.创建DB >use mydb 3.查看当前DB >db 4.删除DB >use mydb >db.dropDataba ...

  6. MongoDB入门---文档操作之增删改

    之前的两篇文章,已经分享过关于MongoDB的集合还有数据库的各种操作,接下来就涉及到最主要的喽,那就是数据方面的操作,在这里叫做文档操作.话不多说,大家来看正文.     首先来看一下它的数据结构: ...

  7. MongoDB (八) MongoDB 文档操作

    一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的  insert() 或 save() 方法. 语法 insert() 命令的基 ...

  8. mongodb学习之:文档操作

    在上一章中有讲到文档的插入操作是用insert的方法.如果该集合不在该数据库中,mongodb会自动创建该集合并插入文档 用find的方法可以查找所有的集合数据 > db.maple.find( ...

  9. MongoDB学习笔记——文档操作之增删改

    插入文档 使用db.COLLECTION_NAME.insert() 或 db.COLLECTION_NAME.save() 方法向集合中插入文档 db.users.insert( { user_id ...

随机推荐

  1. MapReduce 二次排序

    默认情况下,Map 输出的结果会对 Key 进行默认的排序,但是有时候需要对 Key 排序的同时再对 Value 进行排序,这时候就要用到二次排序了.下面让我们来介绍一下什么是二次排序. 二次排序原理 ...

  2. Storm概念学习系列之storm的设计思想

    不多说,直接上干货! storm的设计思想 在 Storm 中也有对流(Stream)的抽象,流是一个不间断的.无界的连续 Tuple(Storm在建模事件流时,把流中的事件抽象为 Tuple 即元组 ...

  3. 【JavaEE】tomcat部署项目的几种方式 .

    一.静态部署1.直接将web项目文件件拷贝到webapps 目录中     Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用.所以可以将JSP程 ...

  4. Oracle快速插入数据append

    1:用merge into 进行匹配更新和插入,2: 开启并行,提高速度3: 如果可以的话加NOLOGING 不写入日志4:如果数据有规律的话,分批次执行 1.使用marge快速插入; MERGE / ...

  5. Java基础重点指南

    Java基础重点指南 每个人都有自己的学习方法,下面是我学完Java后总结的一些要点: 一:(了解)Java诞生于1995年,由Sun公司开发.它把源代码编译成“中间码”,然后通过“Java虚拟机”把 ...

  6. [Environment Build] 工作中遇到的关于Git的问题

    修改已经提交的commit中的author, commit git commit --amend --author 'Your Name <Your Email>' git commit ...

  7. React:关于在delegate中的confirm或者alert在多次弹出

    如何试验出是delegate的过程就不解说了 直接上解决方案:(当然我的解决方案只适合一定情况) 取比较简单的代码来解说,例如 我一开始使用delegate的原因是由于我有部分html页面是ajax中 ...

  8. python之其他模块的用法

    1.时间模块   在Python中通常有三种表示时间的方式,分别是时间戳.元组.格式化的时间字符串. 时间模块的常用方法 time.sleep() #指定延迟时间 time.time() #当前时间的 ...

  9. new Date(str)返回的时间结果在移动端比PC端快了8小时

    最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15  17:53”的格式展示出来.首先我使用了var time=n ...

  10. [转]latex输入数学符号速查

    基本运算 乘法 x×y x \times y 乘方 23x 2^{3x} 平方根 x+y−−−−−√ \sqrt {x + y} 除法 x÷y x \div y 分数 xy \frac{x}{y} 异 ...