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笔记的更多相关文章

  1. MongoDB笔记2018.2.6

    MongoDB笔记2018.2.6 1.先简单接触下linux,大部分教程是在linux环境下的操作,要不然看不懂教程 2.找教程或视频 教程推荐菜鸟教程 学习MongDB前需要懂一定的Mysql语法 ...

  2. MongoDB笔记(三)启动命令mongod的参数

    上一节有关访问权限的笔记,是由启动命令mongod的参数auth引发的有关问题,这节就来看看mongod的其他参数 MongoDB启动命令mongod参数说明: 基本配置 --quiet # 安静输出 ...

  3. 初学mongodb笔记

    先下载下mongodb,这里官网下载,https://www.mongodb.com/download-center?jmp=nav,根据自己的系统选择下载, 然后解压一下:会有这个文件夹\mongo ...

  4. YII2操作mongodb笔记(转)

    componets配置: 'mongodb' => [ 'class' => '\yii\mongodb\Connection', 'dsn' => 'mongodb://test: ...

  5. Mongodb 笔记09 备份、部署MongoDB

    备份 1. 只有在有信心能在紧急情况下完成迅速部署的情况下,备份才是有用的.所以,无论选择了哪种备份技术,一定要对备份及恢复备份的操作进行练习,知道了然于心. 2. 通常情况下,应对副本集的非主节点( ...

  6. Mongodb 笔记08 了解应用的动态、数据管理、持久性

    了解应用的动态 1. 了解正在进行的操作:db.currentOp() , 可以加过滤条件,从而只显示符合条件的结果. 1). 寻找有问题的操作:db.currentOp() 最常见的操作就是用来寻找 ...

  7. Mongodb 笔记07 分片、配置分片、选择片键、分片管理

    分片 1. 分片(sharding)是指将数据拆分,将其分散存放在不同的机器上的过程.有时也用分区(partitioning)来表示这个概念.将数据分散到不同的机器上,不需要功能强大的大型计算机就可以 ...

  8. Mongodb 笔记06 副本集的组成、从应用程序连接副本集、管理

    副本集的组成 1. 同步:MongoDB的复制功能是使用操作日志oplog实现的,操作日志包含了主节点的每一次写操作.oplog是主节点的local数据库中的一个固定集合.备份节点通过查询整个集合就可 ...

  9. MongoDB笔记--安装篇

    安装MongoDB 第一步:下载安装包:官方下载地址←单击此处,如果是win系统,注意是64位还是32位版本的,请选择正确的版本. 第二步:新建目录“D:\MongoDB”,解压下载到的安装包,找到b ...

随机推荐

  1. 【代码笔记】iOS-正在加载

    一,效果图. 二,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the ...

  2. jQuery Validate 表单验证 — 用户注册简单应用

    相信很多coder在表单验证这块都是自己写验证规则的,今天我们用jQuery Validate这款前端验证利器来写一个简单的应用. 可以先把我写的这个小demo运行试下,先睹为快.猛戳链接--> ...

  3. AngularJS 过滤器

    过滤器可以使用一个管道字符(|)添加到表达式和指令中 AngularJS 过滤器可用于转换数据: currency 格式化数字为货币格式. filter 从数组项中选择一个子集. lowercase ...

  4. oncopy="document.selection.empty()"跟oncopy="return false"什么区别?

    实现效果一样,禁止复制. 区别: oncopy="document.selection.empty()"  没禁止,只是把它复制的内容,变成空了: oncopy="ret ...

  5. 什么是JS事件冒泡?

    什么是JS事件冒泡?: 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理 程序或者事件返回true,那么 ...

  6. SQLite使用(二)&&数据类型

    1.概述 我们熟知的数据库引擎大部分采用静态数据类型,即列定义的类型定义了值的存储,并且值要严格满足列的定义,同一列所有值的存储方式都相同,比如定义了一个列类型为整型 int,不能在该列上输入'abc ...

  7. String构造器中originalValue.length>size 发生的情况

    最近在看Jdk6中String的源码的时候发现String的有个这样的构造方法,源代码内容如下: public String(String original) { int size = origina ...

  8. [OFC]Mellanox发布首个200Gb/s硅光子设备

    [OFC]Mellanox发布首个200Gb/s硅光子设备 讯石光通讯网   发布时间:2016/4/6 8:18:20   编者:iccsz   点击143次     摘要:Mellanox日前在O ...

  9. win10用户文件夹重命名,启用administrator账户,删除文件夹时提示找不到该项目

    这一切都源自楼主洁癖一般的强迫症. 楼主在重置win10后的安装过程中用microsoft账户登录的电脑,发现用户文件夹名称怪怪的,于是想重命名一下.楼主发现重命名用户文件夹并不能简单地用F2搞定,于 ...

  10. 方法传参(JAVA与C的比较)

    java代码:public class Test{ static int e; // 默认是0 static String f; //默认是null public static void main(S ...