安装

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. java常见数据结构举例

    1. ArrayList(参考) import java.util.*; public class Test{ public static void main(String [] args){ Arr ...

  2. ZOJ 5638——Prime Query——————【线段树区间更新,区间查询,单点更新】

    Prime Query Time Limit: 1 Second      Memory Limit: 196608 KB You are given a simple task. Given a s ...

  3. Java实例学习——企业进销存管理系统(4)

    Java实例学习——企业进销存管理系统(4) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月18日——系统主窗体设计 只看了学习视频 2月19日—— 回 ...

  4. devExpress GridControl gridView笔记

    gridView1.Appearance.EvenRow.BackColor = Color.FromArgb(, , , ); gridView1.Appearance.OddRow.BackCol ...

  5. Google pieCharts的学习

    在公司项目开发过程中, 尤其是在网站的开发过程中,用到很多的前端的插件,在这里, 我简单介绍下近期Google pieCharts的是使用方法 https://developers.google.co ...

  6. 【Android开发笔记】返回上层Activity的正确打开方式

    技术支持 http://stackoverflow.com/questions/12276027/how-can-i-return-to-a-parent-activity-correctly 首先, ...

  7. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:9.观察者模式

    欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 前言 在一个程序的迭代过程中,复杂度渐渐上升,可能会出现一些跨模块的调用的需求,若是直接得到引用来进行使用,会导致模 ...

  8. linux命令 ——目录

    开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天一个linux命令.学习的主要参考资料为: 1.<鸟哥的linux私房菜> 2.http://codingstan ...

  9. raspberrypi&linux

    Raspberrypi&linux 2018-01-23 19:54:01 Let's go!

  10. 【BZOJ1057】[ZJOI2007] 棋盘制作(单调栈的运用)

    点此看题面 大致题意: 给你一个\(N*M\)的\(01\)矩阵,要求你分别求出最大的\(01\)相间的正方形和矩形(矩形也可以是正方形),并输出其面积. 题解 这题第一眼看去没什么思路,仔细想想,能 ...