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短网址实践

未完待续。。。

posted @ 2016-11-06 10:57  selfim  阅读(222)  评论(0编辑  收藏  举报