1. MongoDB: 是NOSQL的一种, 特长是分布式用的,用于处理爬虫数据
2. mongoDB 与 redis

mongoDB是最像关系型的非关系型数据,更加适用于大数据,redis则更倾向于,并发较小,数据较小,性能更高
3. MongoDB的默认端口: 27017
4. 重要概念
MongoDB mysql
数据库 数据库
集合 表
文档(类似字典) 记录
键值对 字段 #注意: MongoDB中是区分大小写, mysql是不区分大小写
#注意: MongoDB中表示id的是"_id"
5. 用户管理
权限是数据区来做区分的
想要操作admin 那就在admin下创建用户
想要操作adb 那就在adb下创建用户
6. 创建用户

use admin   #使用admin 数据库
db.createUser({
"user":"root",
"pwd":"123",
roles:[{"role":"root","db":"admin"}]
})
####在admin 数据库内创建用户 , 用户root, 密码为123 权限是root权限, 操作admin库
key都是固定的不能随便写每一个key都有特殊含义
其中{"role": "root"} role固定的key root是角色的名字 有可选范围如root readWrite read等等...
7.如何设置Mongdb的用户认证功能:
找到配置文件中(bin下) 修改mongod.cfg 增加一个配置项:
security:
authorization: enabled
# 注意缩进
8. 登录方式: mongo -u "root" -p "123"
或者: mongo 直接进行游客模式 use 切换到与用户所在的数据库 db.auth("用户名","密码") 返回1为成功 0为失败
use 数据库名字  创建数据库
例如: use mydb #创建数据库mydb 因为里面,没有数据,所以不显示出来 db.dropDatabase() 删除数据库 show dbs 查看所有数据库, #因为mydb 没有添加数据所以不会显示出来 use 切换数据库,#切换数据 如果不存在会自动创建 新建的数据库是查看不到的 因为里面没有数据

库的操作

集合的操作(表的操作):
use mydb
dd.tt #创建表,但是没数据,还是不显示 show tables #查看所有集合
db.info.drop() #删除集合 记录文档的操作:
db.user.insert({"_id":1}) #插入一条数据 db.user.insertMany([
{"_id": 3, "name": "张三封"},
{"_id": 4, "name": "鹌鹑蛋"}
])
##插入多条数据 也可以这样:
user1={
"_id":1,
"name":"alex",
"age":10,
'hobbies':['music','read','dancing'],
'addr':{
'country':'China',
'city':'weifang'
}
}
db.user.insert(user1) #插入变量:
user1 = {"_id":10,"name":"王五"}
db.user.insert(user1) #如果id已经存在则覆盖, 没有添加
db.user.save( {"_id":10,"name":"鹌鹑蛋2"}) #因为已经存在,所以,王五变为鹌鹑蛋2 db.user.find() #查询
db.user.find().pretty() #查询结果格式化 #语句查询:
db.user.find() # 查询所有 == select *from user db.user.find({"name":"张三封"}) == select *from user where name = "张三封"
#查询名字为张三封 全部显示出来
db.user.find({"name":"张三封","_id":3}) == select *from user where name = "张三封 and _id = 3"
#查询名字为张三封 且_id 为3 全部显示出来 #比较运算符
> < != >= <=
gt lt ne gte lte db.user.find({"name":{"$ne":"张三封"}}) db.user.find({"_id":{"$gt":3}}) #注意:字段名在外层 条件在里层 逻辑运算符
and or not db.user.find({"$or":[
{"name":"张三丰"},
{"name":"鹌鹑蛋"}
]}) ============================================================================= 取反
db.user.find({"_id":{"$not":{"$mod":[2,1]}}}) # id 在 [1,2]内的
db.user.find({
"_id":{"$in":[1,2]}
}) # id 不在 [1,2]内的
db.user.find({
"_id":{"$nin":[1,2]}
}) # 查询指定字段
db.user.find({},{"name":1,"_id":0})
1表示展示 0不展示
_id默认为1 其他默认为0 db.student.find({"hobbies":{"$all":["movie","muisc"]}}) db.student.find({"hobbies.1":"girl"}) #按照索引进行查询,1是数组的索引 # 查看所有人的 第一个和第二个爱好
db.student.find({},{"hobbies":{"$slice":[0,1]}}) # $slice [1,1] 表示的是从第1个开始取1个
db.student.find({},{"hobbies":{"$slice":[1,1]}})

表的操作




												

MongoDB 全部笔记的更多相关文章

  1. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  2. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  3. MongoDB 学习笔记(原创)

    MongoDB 学习笔记 mongodb 数据库 nosql 一.数据库的基本概念及操作 SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table ...

  4. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  5. MongoDB学习笔记(转)

    MongoDB学习笔记(一) MongoDB介绍及安装MongoDB学习笔记(二) 通过samus驱动实现基本数据操作MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB ...

  6. 【转】MongoDB学习笔记(查询)

    原文地址 MongoDB学习笔记(查询) 基本查询: 构造查询数据. > db.test.findOne() { "_id" : ObjectId("4fd58ec ...

  7. MongoDB学习笔记(六)--复制集+sharding分片 && 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

  8. MongoDB学习笔记(五)--复制集 && sharding分片

    主从复制                                                                                       主从节点开启 主节 ...

  9. MongoDB学习笔记(四)--索引 && 性能优化

    索引                                                                                             基础索引 ...

  10. MongoDB学习笔记(三)--权限 && 导出导入备份恢复 && fsync和锁

    权限                                                                                             绑定内网I ...

随机推荐

  1. solrCloud 4.9 分布式集群部署及注意事项

    环境搭建 一.zookeeper 参考:http://blog.chinaunix.net/uid-25135004-id-4214399.html 现有4台机器 10.14.2.201 10.14. ...

  2. Ubuntu 14.10 下安装rabbitvcs-版本控制

    在Windows下用惯了TortoiseSVN这只小乌龟,到了Ubuntu下很不习惯命令行的SVN,于是经过一番寻找安装了RabbitVCS这款SVN图形化前端工具(官方网站:http://rabbi ...

  3. Android开发之动态添加控件

    动态添加TextView控件: 一:创建一个Android project项目 activity_main.xml文件: 1.用两个LinearLayout布局分别包裹一对TextView,EditT ...

  4. Spring-boot+Spring-batch+hibernate+Quartz简单批量读文件写数据用例

    本文程序集成了Spring-boot.Spring-batch.Spring-data-jpa.hibernate.Quartz.H2等.完整代码在Github上共享,地址https://github ...

  5. DP 01背包 七夕模拟赛

    问题 D: 七夕模拟赛 时间限制: 1 Sec  内存限制: 128 MB提交: 60  解决: 23[提交][状态][讨论版] 题目描述 " 找啊找啊找GF,找到一个好GF,吃顿饭啊拉拉手 ...

  6. [UE4]控件模板

    控件模板:一个UI可以作为另外一个UI的子控件,这个子控件就是控件模板. 控件模板一般使用“Size Box”组件作为根节点,给“Size Box”组件设置合适的尺寸,显示模式选择“Desired”, ...

  7. 本机无法访问虚拟机里面的nginx的80端口

    在虚拟机VMware上装好了centos6.9,并配好了nginx,但是本机就是无法访问.具体情况如下1.本机能ping通虚拟机2.虚拟机也能ping通本机3.虚拟机能访问自己的web4.本机无法访问 ...

  8. vue 路由 以及默认路由跳转

    https://router.vuejs.org/ vue路由配置: 1.安装 npm install vue-router --save / cnpm install vue-router --sa ...

  9. typescript可索引接口 类类型接口

    /* 接口的作用:在面向对象的编程中,接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用.接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据, ...

  10. 使用dtc把dtb的反编译为dts

    sudo apt-get install device-tree-compiler dtc -I dtb -O dts msm8976-v1.1-qrd.dtb > msm8976-v1.1-q ...