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系统分析(二)Mach-O二进制文件解析

    ➠更多技术干货请戳:听云博客 0x01  Mach-O格式简单介绍 Mach-O文件格式是 OS X 与 iOS 系统上的可执行文件格式,类似于windows的 PE 文件 与 Linux(其他 Un ...

  2. Android中使用ListView实现分页刷新(线程休眠模拟)

    当要显示的数据过多时,为了更好的提升用户感知,在很多APP中都会使用分页刷新显示,比如浏览新闻,向下滑动到当前ListView的最后一条信息(item)时,会提示刷新加载,然后加载更新后的内容.此过程 ...

  3. Mac OS X中bogon的处理

    起因 最近写一个项目,之前在eclipse里的tomcat启动是没问题的,最近不知怎么了,启动的时候ehcache会报一个错误,说java.net.UnknownHostException: bogo ...

  4. SSIS 实例——将SQL获取的信息传递到Email中

    最近在为公司财务开发一个邮件通知时遇到了一个技术问题.原来我设计SSIS的是每天将ERP系统支付数据导出到财务支付平台后 Email 通知财务,然后财务到支付平台上进行支付操作.由于那个时候开发时间很 ...

  5. CSS实现内容超过长度后以省略号显示

    样式: {width: 160px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;} 说明: white-space: ...

  6. Oracle ORA-07445 evaopn2()+128错误问题

    Oracle ORA-07445 evaopn2()+128错误问题 问题描述 Plsql developer执行一段sql报错: 经查alert log详细报错信息为: ORA-07445: exc ...

  7. Debain下解决sublime无法输入中文

    sublime安装的方法在此不做过多介绍,网上有很多中教程的方式.本文描述在已经安装sublime的前提下如何输入中文. 1.保存下面的代码到文件sublime_imfix.c(位于~目录) #inc ...

  8. ubuntu kylin 14.04安装搜狗输入法

    1.卸载原有的输入法,fcitx或ibus.如卸载fcitx: sudo apt-get remove fcitx*(如不需保留配置文件用purge) sudo apt-get autoremove( ...

  9. 在Azure上部署Windows Server Core

    作为服务器操作系统,图形界面真心有些多余了,这也是很多人喜欢Linux服务器的原因之一.从Windows Server 2008开始,微软提供了Server Core版本,其实就是一个没有图形界面的服 ...

  10. [LeetCode] Remove Duplicate Letters 移除重复字母

    Given a string which contains only lowercase letters, remove duplicate letters so that every letter ...