1.在windows下载安装mongodb

将下载好的zip压缩文件解压并重命名为mongo-3.0.6,并在根目录下新建文件夹data用于存放数据

2.启动mongod守护进程

使用命令mongod  --dbpath  D:\mongodb-3.0.6\data

如下:

如图:

启动mongodb服务端mongod成功

3.下载安装php的mongodb扩展

下载php的mongodb扩展:

将php_mongo.dll复制到php的ext目录中,并在php.ini中加入该dll文件

重启web服务器例如nginx

访问phpinfo查看php-mongo插件是否安装成功

注意:php与php-mongo对应的是86还是64位需对应;php与php-mongo是否线程安全需对应;需要重启nginx;需要重启php-fpm

注意:在yii2中使用yii2-mongodb扩展,即使安装了php-mongo.dll插件,依然提示mongodb插件没有安装:

原因如下

yii2-mongodb需要php安装了php-mongodb.dll扩展

即扩展有php-mongo.dll和php-mongodb.dll

两个都安装,无论如何不会出现问题

4.使用php连接mongodb

<?php
$mongoClient = new MongoClient();
$db = $mongoClient->test;

//create collection
$collection = $db->createCollection("article");

//create document
$collection = $db->article;
$document = array("name"=>"liudaoqiang", "age"=>26);
$insert_result = $collection->insert($document);

$document = array("name"=>"liuzhiqiangxyz", "sex"=>"male");
$insert_result = $collection->insert($document);

//find all document
$cursor = $collection->find();
foreach($cursor as $document){

}

//update document
$update_result = $collection->update(array("name"=>"liudaoqiang"), array('$set'=>array("age"=>30)));

//remove
$collection->remove(array("name"=>"liudaoqiang"), array("justOne"=>false));
?>

5.使用原生mongodb操作创建,删除,与显示数据库

创建数据库:use  database_name  并且 db.database_name.insert(json)

删除当前使用的数据库:db.dropDatabase()

显示所有数据库:show dbs

6.使用mongoVUE作为客户端连接管理mongodb

下载mongoVUE得到文件解压后如图:

使用Installer.msi安装mongoVUE,安装完成后使用MongoVUE.exe替换即可破解。

运行mongoVUE并连接mongodb:

7.使用php7操作mongodb

<?php
//connect mongodb
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

//insert data
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(["x"=>1, "y"=>"abc", "name"=>"liudaoqiang"]);
$manager->executeBulkWrite("test.test1", $bulk);

//search data
$filter = ['x'=>['$gt'=>0]];
$options = ['projection'=>['_id'=>0], 'sort'=>['x'=>-1]];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('test.test1', $query);

//print searched data
foreach($cursor as $document){
  print_r($document);
}
?>

<?php
//update data
$bulk->update(['x'=>1], ['$set'=>['y'=>'php1000']], ['multi'=>false, 'upsert'=>false]);
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$update = $manager->executeBulkWrite("test.test1", $bulk, $writeConcern);
var_dump($update);

?>

<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$bulk = new MongoDB\Driver\BulkWrite();
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

$bulk->delete(['x'=>1], ['limit'=>1]);
$delete = $manager->executeBulkWrite('test.test1', $bulk, $writeConcern);
var_dump($delete);
?>

8.mongodb监控

mongostat    统计mongodb的运行状态

mongotop     统计前10条占用大量时间得读写集合

例如:

9.mongodb的备份与恢复

mongodb的备份:   mongodump  -h  host  -d  dbname  -o  dumpdir

mongodb的恢复:   mongorestore   -h  host  -d  dbname   dumpdir

例如:

10. 在cmd活在mongoVUE查询无任何显示结果的解决办法

(1)删除d:\mongodb\data目录下的所有文件

(2)使用mongod  --storageEngine mmapv1 --dbpath  d:\mongodb\data启动服务器

10.  MongoDB Exception – yii\mongodb\Exception  Authentication failed.的解决方法

出现该问题的原因是mongodb没有创建所需的超级用户

使用以下语句创建超级用户即可

如图:

命令如下,方便以后直接复制:

 db.HanGreat.insert({"user":"root", "pwd": "root"})

 db.createUser({user:"root", pwd:"root", roles:[{role:"root", db:"admin"}]})

11.使用mongo shell客户端连接mongo服务器

此时,有可能报以下的错误:

出现该问题是因为配置文件有误的原因,解决该问题最好的办法是删除mongodb\data文件夹并新建mongodb\data文件夹

解决后如下图所示:

第二

基于mongo shell客户端的CURD操作

1.插入一条文档

2.批量插入多条文档

3.查询集合中所有的文档

4.查询集合中一个文档

5.更新文档

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)例如:

6.删除文档

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

例如:

第三 mongodb的操作符

1.条件操作符

等于 eq

不等于 ne

大于 gt

大于或等于 gte

小于 lt

小于或等于 lte

例如:

第四,使用mongoVUE作为mongodb客户端管理工具

问题: 用户名,密码,数据库名,名称,服务器ip或域名, 端口 输入正确,

提示Unable to connect to server localhost:27017: Invalid credential for database 'HanGreat'..

或提示

Connection was refused
Unable to connect to server localhost:27017: 未将对象引用设置到对象的实例。.
Type: MongoDB.Driver.MongoConnectionException
Stack: 在 MongoDB.Driver.Internal.DirectMongoServerProxy.Connect(TimeSpan timeout, ReadPreference readPreference)

解决办法为:

只输入 连接名称,ip或域名,端口即可, 用户名,密码,数据库名无需输入, 这样才能连接成功

第五  如何使用命令行连接远程生产环境Mongodb数据库

连接命令如下:

D:\mongodb\bin>mongo ,dds-2ze7bad1514e85642.mongodb.rds.aliyuncs.com:/HanGreat?replicaSet=" --authenticationDatabase HanGreat  --username root --password prod_Chgg2016

mongo "mongodb://dds-2ze7bad1514e85641.mongodb.rds.aliyuncs.com:3717,dds-2ze7bad1514e85642.mongodb.rds.aliyuncs.com:3717/HanGreat?replicaSet=mgset-3365873" --authenticationDatabase HanGreat  --username root --password prod_Chgg2016

出现的问题如下:

--01T15:: I CONTROL  Hotfix KB2731284 or later update is not
installed, will zero-out data files

不能连接成功的原因:

默认MongoDB的连接是内网连接,在本地客户端是外网,所以不能连接;必须在阿里云服务器上生成MongoDB的外网连接;并将本机的外网ip添加到白名单

使用Robo 3T客户端连接服务器MongoDB

发现使用MongoVUE无法连接远程服务器的MongoDB数据库,使用本地客户端无法连接,使用MongoVUE则可以

例如:远程服务器的mongodb配置为:

'mongodb://han_great_test:test_Chgg2016@dds-2ze7bad1514e85641.mongodb.rds.aliyuncs.com:3717,dds-2ze7bad1514e85642.mongodb.rds.aliyuncs.com:3717/han_great_test?replicaSet=mgset-3365873'

在阿里云服务器生成外网链接为:

mongodb://root:****@dds-2ze7bad1514e85641570-pub.mongodb.rds.aliyuncs.com:3717,dds-2ze7bad1514e85642173-pub.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-3365873

将本地外网ip添加至白名单后使用Robo 3T作为Mongo Shell连接MongoDB:

参考:

https://www.cnblogs.com/vipstone/p/8540175.html

mongodb3的使用的更多相关文章

  1. 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比

    一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...

  2. CentOS6.5上源码安装MongoDB3.2.1

    1.环境准备: mkdir /home/mongodb #创建MongoDB程序存放目录 mkdir /data/mongodata -p #创建数据存放目录 mkdir /data/log/mong ...

  3. Mongodb3.0.6副本集+分片学习笔记

    一.使用问题记录 1. mongodb3.0.6使用mongostat参数 >./mongostat -h 127.0.0.1:27017 -u root -p 123456 /authenti ...

  4. mongodb3.2配置文件yaml格式 详解

    mongodb3.x版本后就是要yaml语法格式的配置文件,下面是yaml配置文件格式如下:官方yaml配置文件选项参考:https://docs.mongodb.org/manual/ ... #c ...

  5. MongoDB3.0新特性

    3月3日,MongoDB3.0终于发布了. 主要特点包括了对之前收购的WiredTiger存储引擎的支持,插件式存储引擎API,SCRAM-SHA-1认证机制,并改进了解释功能.此外,包含了自动化.备 ...

  6. 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4

    以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...

  7. mongodb3.03开启认证

    原文地址:http://21jhf.iteye.com/blog/2216103 下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如 ...

  8. Mongodb2.6升级到Mongodb3.0.2笔记

    PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的 停止老版本Mongodb >use admin >db.shutdownServer(); 下载解压新版本Mo ...

  9. mongodb3.0 db.addUser报错

    > db.addUser("ydkt","ydkt") --19T09:: E QUERY TypeError: Property 'addUser' o ...

  10. mongodb3.0 性能測试报告 一

    mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver   共6台 cpu:  单颗8核 ...

随机推荐

  1. P1256 显示图像(广搜)

    题意:略 思路,先说如何建树吧.广搜很简单,就是一个队列+一个检测数组.但是本质还是对搜索树的构建. 这里的构建就是一个节点有4个孩子,每个孩子代表4个方向就构成了一个搜索树.根据题目的就离公式转化一 ...

  2. 【转】联普多WAN口路由器是否可以设置叠加带宽

    TP-link联普是全球领先的通讯供应厂商之一,那么你是否知道联普多WAN口路由器可以设置叠加带宽吗?下面是学习啦小编整理的一些关于联普多WAN口路由器是否可以设置叠加带宽的相关资料,供你参考. 联普 ...

  3. Linux Driver 开发 eclipse工程找不到头文件

    如下添加头文件路径, 右键单击工程,选择 Properties  >  C/C++ Build  >  Settings  >  >  GCC C/C++ Compiler  ...

  4. jenkins忘记管理员密码之解决方案

    jenkins忘记管理员密码怎么办? 通常有这么几种解决方案,如下所示: (1)进入对应的用户目录文件夹,以ubuntu16.04为例,jenkins安装目录为/var/lib/jenkins进入到该 ...

  5. 面试官问,说一个你在工作非常有价值的bug

    如果你去参考面试,做足了准备,面对面试官员从容不迫,吐沫横飞的大谈自己的工作经历.突然,面试官横插一句:说一个你在工作非常有价值的bug.顿时,整个空气都仿佛都凝固了!“What?”... 我想没几个 ...

  6. Android hook神器frida(二)

    1.关于使用frida遇到的一些问题 (1)如果出现以下错误: 可以通过以下方式关闭SELinux,在adb shell中执行: > /sys/fs/selinux/enforce 或者 set ...

  7. 【精编重制版】JavaWeb 入门级项目实战 -- 文章发布系统 (第二节)

    说明 本教程是,原文章发布系统教程的精编重制版,会包含每一节的源码,以及修正之前的一些错误.因为之前的教程只做到了评论模块,很多地方还不完美,因此重制版会修复之前的一些谬误和阐述不清的地方,而且,后期 ...

  8. Maven项目远程部署到Tomcat

    目录 Maven项目远程部署到Tomcat 一.Tomcat插件支持的目标 二.系统要求及插件引入 2.1 系统要求 2.2 引入插件 三.远程部署war到tomcat 3.1 添加tomcat管理角 ...

  9. vue-amap 实例获取与自动缩放

    this.$refs.map.$amap.setFitView(markers) 获取实例,$amap 为 el-map 的 vid,没错,vid 获取方式就是这样 markers 为 Amap.Ma ...

  10. 移动H5页面微信支付踩坑之旅(微信支付、单页面路由模拟、按钮加锁、轮询等常见功能)

    开发背景: .net混合开发的vue模板语法的单页面应用,所以不存在脚手架以及没有路由可以跳转. 项目描述: 需要写两个页面,在订单详情页需要点击“请输入手机号”进入手机号绑定页面,手机号绑定成功后自 ...