初窥 MongoDB
最近在研究Nodejs 自然就接触到了MongoDB 这玩意儿有意思 与关系型数据库相比少了很多条条框框 让我情不自禁的想要了解它的所有
MongoDB与Redis同类 属于NoSql的一种,特点是简单,方便扩展,性能更佳。
以下是MongoDB与MySQL的不同:
1.MongoDB事务稍弱(不支持多行多文档多语句原子性更新)
2.MongoDB不支持多表联查。
3.MongoDB没有表结构概念,每条记录可以存入完全不同的数据结构。
4.MongoDB完全的索引支持,这点比Redis纯键值对要强大,单键索引,多键索引,数组索引,全文索引,地图索引。
5.MongoDB速度快 性能优越 (默认操作是写日志 写内存 返回结果 然后才会在后台进行每隔几十毫秒的日志刷盘)
6.MongoDB的数据存储更加安全(默认支持三节点以上的复制集群)
(当然 肯定还有很多是我不知道的)
下载地址
https://www.mongodb.com/download-center#community
下载之后自行移动解压
本篇教程的解压后目录为 /usr/local/mongodb
手动创建配置文件
vim /usr/local/mongodb/mongodb.conf
配置文件写入以下内容:
#数据库存放目录
dbpath=/usr/local/mongodb/data
#是否启动日志
journal=true
#日志文件路径 非目录
logpath=/usr/local/mongodb/run.log
logappend=true
#绑定ip
bind_ip = 127.0.0.1
#绑定端口
port = 27018
#后台启动
fork = true
创建data目录与log文件
mkdir /usr/local/mongodb/data
touch /usr/local/mongodb/run.log
给个权限
chmod 755 -R /usr/local/mongodb
进入bin目录
cd /usr/local/mongodb/bin/
启动
./mongod -f /usr/local/mongodb/mongodb.conf
出现以下提示即为启动成功:
about to fork child process, waiting until server is ready for connections.
forked process: 16131
child process started successfully, parent exiting
连接数据库
./mongo
默认连接端口为27017 如果配置文件中指定了其他端口 则需要带上 如 ./mongo -port 27018
基本操作:
//查询所有库(空库不会显示)
show dbs
//查询所有表
db.getCollectionNames()
//切换数据库(如库不存在会自动创建)
use dbname
//往a表插入内容(如表不存在会自动创建)(MongoDB中的表 被称作为集合)
db.a.insert({username:'admin',password:123456})
//将a表中用户为admin的密码改为111111
db.a.update({'username':'admin'},{$set:{'password':111111}})
//删除a表中用户为admin的数据
db.a.remove({'username':'admin'})
查 与 MySQL对照
//所有的查询后面都可以跟上.pretty()代表格式化输出 如 db.a.find().pretty() db.a.find() select * from a db.a.count() select count(*) from a db.a.findOne() select * from a limit 1 db.a.find({'username':'admin','password':123456}) select * from a where username='admin' and password=123456 db.a.find({'username':'admin'}, {password: 1}) select password from a where username='admin' //1为指定返回键 0为指定排除键 db.a.find({$or:[{"username":"admin"},{"username": "mongod"}]}) select * from a where username='admin' or username='mongod' db.a.find({"num": {$gt:90}, $or: [{"username": "admin"},{"username": "mongod"}]}) select * from num>90 and (username='admin' or username='mongod') db.a.find({"id" : {"$in" : [10, 11, 12]}}) select * from a where id in (10,11,12)
初窥 MongoDB的更多相关文章
- 初窥ElasticSearch
初窥ElasticSearch 官网上面的,不知道讲的是什么.. youtube上面有一个start with,内容是在windows以下跑这个elastic search,然后用一个fidler工具 ...
- Scrapy001-框架初窥
Scrapy001-框架初窥 @(Spider)[POSTS] 1.Scrapy简介 Scrapy是一个应用于抓取.提取.处理.存储等网站数据的框架(类似Django). 应用: 数据挖掘 信息处理 ...
- 初窥Kaggle竞赛
初窥Kaggle竞赛 原文地址: https://www.dataquest.io/mission/74/getting-started-with-kaggle 1: Kaggle竞赛 我们接下来将要 ...
- scrapy2_初窥Scrapy
递归知识:oop,xpath,jsp,items,pipline等专业网络知识,初级水平并不是很scrapy,可以从简单模块自己写. 初窥Scrapy Scrapy是一个为了爬取网站数据,提取结构性数 ...
- WWDC15 Session笔记 - Xcode 7 UI 测试初窥
https://onevcat.com/2015/09/ui-testing/ WWDC15 Session笔记 - Xcode 7 UI 测试初窥 Unit Test 在 iOS 开发中已经有足够多 ...
- Java发送邮件初窥
一.背景 最近朋友的公司有用到这个功能,之前对这一块也不是很熟悉,就和他一起解决出现的异常的同时,也初窥一下使用Apache Common Email组件进行邮件发送. 二.Java发送邮件的注意事项 ...
- 【软件工程】week5-个人作业-敏捷开发方法初窥
敏捷开发方法初窥 引言:本周的软件工程个人博客作业是阅读关于敏捷开发方法的文章(http://martinfowler.com/agile.html),并撰写自己的读后感.文章内容非常丰富,对敏捷开发 ...
- 网页3D效果库Three.js初窥
网页3D效果库Three.js初窥 背景 一直想研究下web页面的3D效果,最后选择了一个比较的成熟的框架Three.js下手 ThreeJs官网 ThreeJs-github; 接下来我会陆续翻译 ...
- iOS视频直播初窥:高仿<喵播APP>
视频直播初窥 视频直播,可以分为 采集,前处理,编码,传输, 服务器处理,解码,渲染 采集: iOS系统因为软硬件种类不多, 硬件适配性比较好, 所以比较简单. 而Android端市面上机型众多, 要 ...
随机推荐
- winPcap编程之环境搭建(一)
之前用winPcap做过一个拦截网络数据包的程序,作为当时的网络编程课程的课程设计,现在重新学习一下. 工具:codeblocks 要用到的一些东西:WinPcap.exe与winPcap一些库文件 ...
- EasyUI Dialog 窗体 布局记要
通常在窗体里放置的都是表单,或者使用分栏(Tab)来陈列信息也是非常的好用.在这里特别记录一下在窗体里同时放置表单和表格的设计思路. 仅放置一个表单 通常 Dialog 里只放一个表单,而且表单的行数 ...
- 将 C# 枚举反序列化为 JSON 字符串 基础理论
该转换过程需要引用 Newtonsoft.JSON,这其中的转换过程还是蛮有意思的. 一.定义枚举 /// <summary> /// 托寄物品枚举 /// </summary> ...
- 创建静态库Static Library(Framework库原理相似)
在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 简介: 库是一些没有ma ...
- [ACdream]女神教你字符串——违和感
题目描述: 女神最喜欢字符串了,字符串神马的最有爱了. 女神是一个重度强迫症患者,面对不是对称的东西,她会觉得太违和了,就会爆炸.所以她手上的字符串都是回文的,像什么a,b,aabaa,abcba,上 ...
- Linux系统用户管理
一.Linux账户 广义上讲,Linux的账户包括用户账户和组账户两种. Linux系统下的用户账户有两种,普通用户和超级用户.普通用户在系统中的任务就是普通工作,管理员在系统上的任务就是对普通用户和 ...
- CentOs 系统启动流程相关
CentOS的启动流程 1)加载BIOS 的硬件信息,获取第一个启动设备 2)读取第一个启动设备MBR 的引导加载程序(grub) 的启动信息 3)加载核心操作系统的核心信息,核心开始解压缩,并尝试驱 ...
- virualbox 安装 otter 必备软件
前言 最近研究了一下阿里otter项目(分布式数据库同步),所以就在virualbox 上开始准备学习一下,遇到了不少坑,所以记录一下啊. otter 项目:https://github.com/al ...
- 18个超有趣的SVG绘制动画赏析
SVG作为时下比较新颖的技术标准,已经建立了很多基于SVG的前端项目.由于SVG在绘制路径上非常灵活,我们将很多网页上的元素使用SVG来绘制而成,有各种人物.小图标.小动画等等.今天我们收集了18个非 ...
- code force 403C.C. Andryusha and Colored Balloons
C. Andryusha and Colored Balloons time limit per test 2 seconds memory limit per test 256 megabytes ...