MongoDB笔记
mongodb简介
MongoDB 是一个基于分布式文件存储的数据库。存储的是Bson结构的文档(二进制的JSON),内部执行引擎为JS解释器,把文档存储为BSON结构,在查询时,转换为JS对象,可以通过JS语法来操作。表下的每篇文档都可以有自己独特的结构(可以理解为json对象都可以有自己独特的属性和值)。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB安装启动
Linux下安装MongoDB和php MongoDB扩展
#mkdir /data
#cd /usr/local/src
#wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.0.13.tgz?_ga=1.181140007.1839163961.1478316601
# mv mongodb-linux-x86_64-rhel70-3.0.13.tgz\?_ga\=1.181140007.1839163961.1478316601 mongodb-linux-x86_64-rhel70-3.0.13.tgz
#tar zxvf mongodb-linux-x86_64-rhel70-3.0.13.tgz
#mv mongodb-linux-x86_64-rhel70-3.0.13 /app/local/mongodb
#cd /app/local/mongodb
# ./bin/mongod --dbpath=/data/ --logpath=/data/m17.log --fork --port 27017 --smallfiles

表明MongoDB启动成功,接下来安装php MongoDB扩展
参数解释:
--dbpath 数据存储目录
--logpath 日志存储文件
--port 运行端口(默认27017)
--fork 后台进程运行
--smallfiles 占用较小空间的方式启动
#cd /usr/local/src
#wget https://pecl.php.net/get/mongodb-1.1.9.tgz
#tar zxvf mongodb-1.1.9.tgz
#cd mongodb-1.1.9.tgz
#/app/local/php/bin/phpize
#./configure --with-php-config=/app/local/php/bin/php-config
#make && make install
#cd ../
#vim /app/local/php/etc/php.ini
添加extension=mongodb.so
:x
重启nginx

如图所示,则表明mongodb扩展安装成功
MongoDB基本命令
首先来简单介绍下MongoDB bin目录下的一些可执行文件的作用

进入mongodb客户端
#cd /app/local/mongodb
#./bin/mongo
...

查看当前数据库
...
>show databases;
>show dbs;

选库和查看库下面的表(或者叫集合)
...
>use databaseName #选库
>show tables/collections #查看当前库下的collection

在MongoDB中,数据库可以隐式创建,可以use一个不存在的库, 然后在该库下创建collection,即可创建库
语法:db.createCollection(‘collectionName’)
...
>use myshop;
>db.createCollection('user');
>show dbs;

同理,collection也可以隐式创建
语法:db.collectionName.insert(document);
...
>use test;
>db.goods.insert({'title':'apple'});
>show collections;

删除collection
语法: db.collectionName.drop()
...
>db.goods.drop();
>show collections;

删除库
语法:db.dropDatabase();
...
>db.dropDatabases();
>show databases;
>

MongoDB增删改查
- 增:insert
介绍: mongodb存储的是文档,. 文档是json格式的对象.
语法:db.collectionName.isnert(document);
可以增加一篇文档、增加一篇指定_id的文档和增加多篇文档
...
>use myshop;
>show collections;
>db.goods.insert();

- 删:remove
语法: db.collection.remove(查询表达式, 选项);
选项是指 {justOne:true/false},是否只删一行, 默认为false
注意
1: 查询表达式依然是个json对象
2: 查询表达式匹配的行,将被删掉.
3: 如果查询表达式为空对象{},collections中的所有文档将被删掉.
...
>db.goods.remove({data:'999'});

- 改:update
语法: db.collection.update(查询表达式,新值,选项);
修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段.
...
>db.goods.update();

- 查:find、findOne
语法: db.collection.find(查询表达式,查询的列);
db.collections.find(表达式,{列1:1,列2:1});
...
>db.goods.find();

MongoDB短网址实践
未完待续。。。
MongoDB笔记的更多相关文章
- MongoDB笔记2018.2.6
MongoDB笔记2018.2.6 1.先简单接触下linux,大部分教程是在linux环境下的操作,要不然看不懂教程 2.找教程或视频 教程推荐菜鸟教程 学习MongDB前需要懂一定的Mysql语法 ...
- MongoDB笔记(三)启动命令mongod的参数
上一节有关访问权限的笔记,是由启动命令mongod的参数auth引发的有关问题,这节就来看看mongod的其他参数 MongoDB启动命令mongod参数说明: 基本配置 --quiet # 安静输出 ...
- 初学mongodb笔记
先下载下mongodb,这里官网下载,https://www.mongodb.com/download-center?jmp=nav,根据自己的系统选择下载, 然后解压一下:会有这个文件夹\mongo ...
- YII2操作mongodb笔记(转)
componets配置: 'mongodb' => [ 'class' => '\yii\mongodb\Connection', 'dsn' => 'mongodb://test: ...
- Mongodb 笔记09 备份、部署MongoDB
备份 1. 只有在有信心能在紧急情况下完成迅速部署的情况下,备份才是有用的.所以,无论选择了哪种备份技术,一定要对备份及恢复备份的操作进行练习,知道了然于心. 2. 通常情况下,应对副本集的非主节点( ...
- Mongodb 笔记08 了解应用的动态、数据管理、持久性
了解应用的动态 1. 了解正在进行的操作:db.currentOp() , 可以加过滤条件,从而只显示符合条件的结果. 1). 寻找有问题的操作:db.currentOp() 最常见的操作就是用来寻找 ...
- Mongodb 笔记07 分片、配置分片、选择片键、分片管理
分片 1. 分片(sharding)是指将数据拆分,将其分散存放在不同的机器上的过程.有时也用分区(partitioning)来表示这个概念.将数据分散到不同的机器上,不需要功能强大的大型计算机就可以 ...
- Mongodb 笔记06 副本集的组成、从应用程序连接副本集、管理
副本集的组成 1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作.oplog是主节点的local数据库中的一个固定集合.备份节点通过查询整个集合就可 ...
- MongoDB笔记--安装篇
安装MongoDB 第一步:下载安装包:官方下载地址←单击此处,如果是win系统,注意是64位还是32位版本的,请选择正确的版本. 第二步:新建目录“D:\MongoDB”,解压下载到的安装包,找到b ...
随机推荐
- 【代码笔记】iOS-正在加载
一,效果图. 二,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the ...
- jQuery Validate 表单验证 — 用户注册简单应用
相信很多coder在表单验证这块都是自己写验证规则的,今天我们用jQuery Validate这款前端验证利器来写一个简单的应用. 可以先把我写的这个小demo运行试下,先睹为快.猛戳链接--> ...
- AngularJS 过滤器
过滤器可以使用一个管道字符(|)添加到表达式和指令中 AngularJS 过滤器可用于转换数据: currency 格式化数字为货币格式. filter 从数组项中选择一个子集. lowercase ...
- oncopy="document.selection.empty()"跟oncopy="return false"什么区别?
实现效果一样,禁止复制. 区别: oncopy="document.selection.empty()" 没禁止,只是把它复制的内容,变成空了: oncopy="ret ...
- 什么是JS事件冒泡?
什么是JS事件冒泡?: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理 程序或者事件返回true,那么 ...
- SQLite使用(二)&&数据类型
1.概述 我们熟知的数据库引擎大部分采用静态数据类型,即列定义的类型定义了值的存储,并且值要严格满足列的定义,同一列所有值的存储方式都相同,比如定义了一个列类型为整型 int,不能在该列上输入'abc ...
- String构造器中originalValue.length>size 发生的情况
最近在看Jdk6中String的源码的时候发现String的有个这样的构造方法,源代码内容如下: public String(String original) { int size = origina ...
- [OFC]Mellanox发布首个200Gb/s硅光子设备
[OFC]Mellanox发布首个200Gb/s硅光子设备 讯石光通讯网 发布时间:2016/4/6 8:18:20 编者:iccsz 点击143次 摘要:Mellanox日前在O ...
- win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目
这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...
- 方法传参(JAVA与C的比较)
java代码:public class Test{ static int e; // 默认是0 static String f; //默认是null public static void main(S ...