mongodb安装,库操作,集合操作(表),文档操作(记录)
安装
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安装,库操作,集合操作(表),文档操作(记录)的更多相关文章
- MongoDB学习(操作集合中的文档)
文档概念 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 insert()方法 ...
- python全栈开发day48-jqurey自定义动画,jQuery属性操作,jQuery的文档操作,jQuery中的ajax
一.昨日内容回顾 1.jQuery初识 1).使用jQuery而非JS的六大理由 2).jQuery对象和js对象转换 3).jQuery的两大特点 4).jQuery的入口函数三大写法 5).jQu ...
- HTML jQuery 文档操作 - html() 方法
jQuery 文档操作 - html() 方法 jQuery 文档操作参考手册 实例 设置所有 p 元素的内容: $(".btn1").click(function(){ $(&q ...
- MongoDB系列---集合与文档操作03
MongoDB-——Collection 学习大纲: 1.集合操作 2.文档操作 知识回顾: 上一篇我们讲述了如何对MongoDB的权限和用户进行日常的基本操作,来达到我们对数据库的基本安全保障. 一 ...
- MongoDB 集合与文档操作
一.创建DB 1.查看DB >show dbs 2.创建DB >use mydb 3.查看当前DB >db 4.删除DB >use mydb >db.dropDataba ...
- MongoDB入门---文档操作之增删改
之前的两篇文章,已经分享过关于MongoDB的集合还有数据库的各种操作,接下来就涉及到最主要的喽,那就是数据方面的操作,在这里叫做文档操作.话不多说,大家来看正文. 首先来看一下它的数据结构: ...
- MongoDB (八) MongoDB 文档操作
一. MongoDB 插入文档 insert() 方法 要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 或 save() 方法. 语法 insert() 命令的基 ...
- mongodb学习之:文档操作
在上一章中有讲到文档的插入操作是用insert的方法.如果该集合不在该数据库中,mongodb会自动创建该集合并插入文档 用find的方法可以查找所有的集合数据 > db.maple.find( ...
- MongoDB学习笔记——文档操作之增删改
插入文档 使用db.COLLECTION_NAME.insert() 或 db.COLLECTION_NAME.save() 方法向集合中插入文档 db.users.insert( { user_id ...
随机推荐
- Primefaces dataTable设置某个cell的样式问题
设置primefaces dataTable的源网段列的Cell可以编辑,当回车键保存时,判断是否输入的网段合法,如果不合法就显示警告信息,并将这个不合法的数据用红色表示.问题是,怎么给这一个cell ...
- ASP编码规范
ASP编码规范(--::) 第一章 ASP编码规范通述 ASP编码分为两大部分,一部分为静态文件编码,一部分为包含服务器端脚本的动态文件编码. 静态文件编码分script编码和HTML编码两部分. 服 ...
- 360或其他双核浏览器下在兼容模式用chrome内核渲染的方法
<meta name="renderer" content="webkit"> <meta http-equiv="X-UA-COM ...
- 13.padding和margin,几种参数
这篇会很短. 那么如上图所示,margin指的是外边距,padding指的是内边距,border自有其像素宽度,element在1335乘以392的地方. margin和padding一样总共有四个, ...
- Linux常用命令汇总(渐更)
后台启动jar nohup java -jar xxxxx.jar > xxxx.out 2>&1 & 封禁ip iptables -I INPUT -s 200.194. ...
- JVM(二):垃圾回收
三个问题: 那些内存需要回收? -- 对象是否存活判断 什么时候回收? --垃圾回收触发条件 如何回收? --垃圾回收算法 垃圾回收应用 -- 理解GC日志.使用垃圾回收命令和工具 1. 判断 ...
- Python3基础12(collections、struct、itertools、chardet等的使用)
import struct import base64import itertoolsimport chardet from collections import namedtuple,default ...
- Java interface和abstract小记
一.abstract 用abstract修饰的类叫做抽象类,用abstract修饰的方法叫抽象方法. 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写. 抽象类不能被实例化. ...
- LeetCode Best Time to Buy and Sell Stock II (简单题)
题意: 股票买卖第2题.给出每天的股票价格,每次最多买一股,可以多次操作,但是每次在买之前必须保证身上无股票.问最大的利润? 思路: 每天的股票价格可以看成是一条曲线,能卖掉就卖掉,那么肯定是在上升的 ...
- ThreadLocal为什么要用WeakReference
先上一张图看一下ThreadLocal的内部结构,每个Thread对象内部都维护了一个ThreadLocal.ThreadLocalMap 我们在上图看到的就是三个Thread对象内部格子的Threa ...