安装

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

库的操作

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

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

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

数据类型

#null:用于表示空或不存在的字段
{"x":null}
#布尔型:true 和 false
{"x":true,"y":fasle}
#数值
{"x":3,"y":3.1414}
#字符串
{"name":"egon"}
#日期
d = {"x":new Date()}
d.x.getHours()
#正则表达式/ /
d={'pattern':/^egon.*?nb$/i}
#数组
d={'x':[1,'a','v']}
#内嵌文档
user={'name':'jerry','addr':{'country':'China','city':'YT'}}
user.addr.country
#对象id:是一个12字节的ID,是文档的唯一标识,不可变
d={'x':ObjectId()} #案例:
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"}}) db.tb.find()
db.tb.find().pretty() # 格式化显示 findOne没有pretty()方法

文档操作

#没有指定_id则默认ObjectID,_id不能重复,且在插入后不可变

#插入单条
db.test.insert({"_id":1,"name":"zb","age":18})
#无则插入,有则覆盖
db.test.save()
#插入多条
db.test.insertMany([{"_id":2,"name":"egon","age":28},{"_id":3,"name":"yhh","age":38}])

查询数据

#cmd清屏 cls
#find
查询所有匹配数据
#findOne
查找第一个匹配的

比较运算

use db
db.表名.find(条件)
比较运算
#等于
= >>>> {"name":"zb"}
db.test.find({"name":"zb"})
#不等于
!= >>>>{"name":{"$ne":"zb"}}
db.test.find({"name":{"$ne":"zb"}})
#大于
> >>>>{"_id":{"$gt":1}}
db.test.find({"_id":{"$gt":1}})
#大于等于
>= >>>>{"_id":{"$gte":1}}
db.test.find({"_id":{"$gte":1}})
#小于
< >>>>{"_id":{"$lt":3}}
db.test.find({"_id":{"$lt":3}})
#小于等于
<= >>>>{"_id":{"lte":3}}
db.test.find({"_id":{"$lte":3}})

逻辑运算

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

成员运算

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

正则表达式

db.test.find({"name":/.*?z.*?/})

正则写在//内,后面的i代表:
i 忽略大小写
m 多行匹配模式
x 忽略非转义的空白字符
s 单行匹配模式

指定字段

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

查询数组

#准备数据
use test1
db.user user1 = {"_id":1,"name":"egon","hobbies":["play","girl","music","run"]} user2 = {"_id":2,"name":"alex","hobbies":["swim","girl","drink","tea"]} user3 = {"_id":3,"name":"yhh","hobbies":["girl","tea","fight","run"]} user4 = {"_id":4,"name":"aaa","hobbies":["run","girl","chicken","ball"]} db.user.insert(user1)
db.user.insert(user2)
db.user.insert(user3)
db.user.insert(user4) #查询 #查询爱好有girl的人
db.user.find({'hobbies':'girl'}) #查询爱好girl和drink的人
db.user.find({"hobbies":{"$all":["girl","drink"]}}) #查询第4个爱好为tea的人
db.user.find({"hobbies.3":"tea"}) #查询所有人最后两个爱好
db.user.find({},{'hobbies':{"$slice":-2}}) #查询所有人的第2个到第3个爱好
db.user.find({},{"hobbies":{"$slice":[1,2]}})

其他

# 排序:1代表升序,-1代表降序
db.user.find().sort({"_id":-1})
db.user.find().sort({"name":-1,'_id':-1}) #分页:limit代表取多少个document,skip代表跳过前几个document db.user.find({'hobbies':'girl'}).limit(1).skip(2) #获取数量
db.user.count({'hobbies':'girl'})
db.user.find({'hobbies':'girl'}).count() #{'key':null} 匹配key的值为null或者没有这个key
#准备数据
db.t2.insert({'a':10,'b':111})
db.t2.insert({'a':20})
db.t2.insert({'b':null}) #查询结果
> db.t2.find({"b":null})
{ "_id" : ObjectId("5a5cc2a7c1b4645aad959e5a"), "a" : 20 }
{ "_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. Primefaces dataTable设置某个cell的样式问题

    设置primefaces dataTable的源网段列的Cell可以编辑,当回车键保存时,判断是否输入的网段合法,如果不合法就显示警告信息,并将这个不合法的数据用红色表示.问题是,怎么给这一个cell ...

  2. ASP编码规范

    ASP编码规范(--::) 第一章 ASP编码规范通述 ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码. 静态文件编码分script编码和HTML编码两部分. 服 ...

  3. 360或其他双核浏览器下在兼容模式用chrome内核渲染的方法

    <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-COM ...

  4. 13.padding和margin,几种参数

    这篇会很短. 那么如上图所示,margin指的是外边距,padding指的是内边距,border自有其像素宽度,element在1335乘以392的地方. margin和padding一样总共有四个, ...

  5. Linux常用命令汇总(渐更)

    后台启动jar nohup java -jar xxxxx.jar > xxxx.out 2>&1 & 封禁ip iptables -I INPUT -s 200.194. ...

  6. JVM(二):垃圾回收

    三个问题: 那些内存需要回收? -- 对象是否存活判断 什么时候回收?   --垃圾回收触发条件 如何回收? --垃圾回收算法 垃圾回收应用  -- 理解GC日志.使用垃圾回收命令和工具 1.  判断 ...

  7. Python3基础12(collections、struct、itertools、chardet等的使用)

    import struct import base64import itertoolsimport chardet from collections import namedtuple,default ...

  8. Java interface和abstract小记

    一.abstract 用abstract修饰的类叫做抽象类,用abstract修饰的方法叫抽象方法. 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写. 抽象类不能被实例化. ...

  9. LeetCode Best Time to Buy and Sell Stock II (简单题)

    题意: 股票买卖第2题.给出每天的股票价格,每次最多买一股,可以多次操作,但是每次在买之前必须保证身上无股票.问最大的利润? 思路: 每天的股票价格可以看成是一条曲线,能卖掉就卖掉,那么肯定是在上升的 ...

  10. ThreadLocal为什么要用WeakReference

    先上一张图看一下ThreadLocal的内部结构,每个Thread对象内部都维护了一个ThreadLocal.ThreadLocalMap 我们在上图看到的就是三个Thread对象内部格子的Threa ...