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网络3—UIWebView与WKWebView使用详解

    一.整体介绍 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView.通过简单的测试即可发现UIWebView占用过多内存,且 ...

  2. H5 表格标签的其它标签

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. showSetPwdDialog--自定义对话框

    样式: 布局: layout dialog_set_pwd.xml <?xml version="1.0" encoding="utf-8"?> & ...

  4. ios动态创建类Class

    [Objective-C Runtime动态加载]---动态创建类Class 动态创建类Class,动态添加Class成员变量与成员函数,动态变量赋值与取值,动态函数调用等方法 a.使用objc_al ...

  5. GitLab CI持续集成配置方案

    目录 1. 持续集成介绍 1.1 概念 1.2 持续集成的好处 2. GitLab持续集成(CI) 2.1 简介 2.2 GitLab简单原理图 2.3 GitLab持续集成所需环境 2.4 需要了解 ...

  6. Spark SQL 之 DataFrame

    Spark SQL 之 DataFrame 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述(Overview) Spark SQL是Spark的一个组件,用于结构化 ...

  7. x01.CodeBuilder: 生成代码框架

    根据 Assembly 生成代码框架. 这是学习 AvalonEdit 的一个副产品.学习时,照着源代码新建文件夹,新建文件,添加方法与属性,虽然只是个框架,也要花费大量时间.为什么不让它自动生成呢? ...

  8. Linux下使用crontab定时备份日志

    上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

  9. C#之发送邮件【模板】+【封装】ZJ版

    PS: 为了弥补上篇博客的不足,正好周六闲着没事.所以进行优化下,来个终结版 功能实现:模板发送+自指定邮箱发送+解耦 总体预览如下: 各代码如下:(代码略多,所以都折叠了) 前台; @{ Layou ...

  10. eclipse直接访问数据库

    本文转载至百度经验 http://jingyan.baidu.com/article/a501d80cea3ed4ec630f5e2f.html 以oracle 11g 数据库为例