mongoDB

New PHP Strong

mongoDB


Write here... 


     Copyright ©2017 . All Rights Reserved.

 

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

 

MongoDB的优势与劣势

 
优势
  1. 快速!基于内存,将热数据存放在物理内存中(不仅仅只是索引和少部分数据),从而提高了整体速度和效率。
  2. 高扩展性!MongoDB的高可用和集群架构拥有十分高的扩展性。
  3. 自身的FailOver机制!在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。
  4. JSon格式的数据!MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。
 
劣势
  1. 应用经验少!由于NoSQL兴起时间短,应用经验相比关系型数据库较少。
  2. 由于以往用到的都是关系型数据库,可能会造成使用者一开始的不适应。
  3. 无事务机制!MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。

 

Mongodb的增删改查操作
<?php
// 连接到mongodb
$mongoClient = new MongoClient();
// 选择一个数据库
$db = $mongoClient->test;
 
//获取集合
$collection=$db->users;
 
//更新文档
$condition=array();
$condition["id"]=1;
$data=array();
$data['name']="wangwu";
$data['age']="11";
$collection->update($condition,$data);
 
//插入文档
$data=array();
$data['id']=4;
$data['name']="哈哈";
$data['age']="11";
$collection->insert($data);
 
//删除文档
$condition=array();
$condition['id']=2;
$collection->remove($condition);
 
//查询文档
$users=$collection->find();
foreach ($users as $k => $v) {
      print_r($v);
}
?>

mongodb与mysql命令对比

传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、

集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,

这体现了模式自由的特点。MongoDB的好处挺多的,比如多列索引,查询时可以用一些统计函数,支持多条件查询,但是目前多表查询是不

支持的,可以想办法通过数据冗余来解决多表查询的问题。

 

应用场景

·  游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新

·  物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。

·  社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能 

·  物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析

·  视频直播,使用 MongoDB 存储用户信息、礼物信息等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值