mongodb3的使用
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的使用的更多相关文章
- 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比
一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...
- CentOS6.5上源码安装MongoDB3.2.1
1.环境准备: mkdir /home/mongodb #创建MongoDB程序存放目录 mkdir /data/mongodata -p #创建数据存放目录 mkdir /data/log/mong ...
- Mongodb3.0.6副本集+分片学习笔记
一.使用问题记录 1. mongodb3.0.6使用mongostat参数 >./mongostat -h 127.0.0.1:27017 -u root -p 123456 /authenti ...
- mongodb3.2配置文件yaml格式 详解
mongodb3.x版本后就是要yaml语法格式的配置文件,下面是yaml配置文件格式如下:官方yaml配置文件选项参考:https://docs.mongodb.org/manual/ ... #c ...
- MongoDB3.0新特性
3月3日,MongoDB3.0终于发布了. 主要特点包括了对之前收购的WiredTiger存储引擎的支持,插件式存储引擎API,SCRAM-SHA-1认证机制,并改进了解释功能.此外,包含了自动化.备 ...
- 使用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 ...
- mongodb3.03开启认证
原文地址:http://21jhf.iteye.com/blog/2216103 下载了最新mongodb3.03版本,当使用--auth 参数命令行开启mongodb用户认证时遇到很多问题,现总结如 ...
- Mongodb2.6升级到Mongodb3.0.2笔记
PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的 停止老版本Mongodb >use admin >db.shutdownServer(); 下载解压新版本Mo ...
- mongodb3.0 db.addUser报错
> db.addUser("ydkt","ydkt") --19T09:: E QUERY TypeError: Property 'addUser' o ...
- mongodb3.0 性能測试报告 一
mongodb3.0 性能測试报告 一 mongodb3.0 性能測试报告 二 mongodb3.0 性能測试报告 三 測试环境: 服务器:X86 pcserver 共6台 cpu: 单颗8核 ...
随机推荐
- docker 14 dockerfile自定义mycentos
Base镜像(scratch) Docker Hub中99%的镜像是通过在base镜像中安装和配置需要的软件构建出来的.也就是说base镜像是所有其他镜像的鼻祖. hub默认centos镜像是什么情况 ...
- docker 10 docker的镜像原理
镜像是什么? 镜像是一个轻量级,可执行的软件包,用来打包运行环境和基于运行环境开发的软件包,它包含某个软件运行环境的所有内容.包括代码,运行时的库,配置文件和环境变量 UnionFs(联合文件系统) ...
- Java 数据类型总结
Java 中提供了八种数据类型:6个数字类型(四个整数型,两个浮点型).字符类型.布尔型. 依次分别是 : byte.int.short.long.float.double.char.boolean. ...
- jmeter(二十三)分布式测试
jmeter用了一年多,也断断续续写了一些相关的博客,突然发现没有写过分布式测试的一些东西,这篇博客就介绍下利用jmeter做分布式测试的一些技术点吧,权当参考... 关于jmeter的介绍和元件作用 ...
- Spark笔记-gz压缩存储到HDFS【转】
参考:http://blog.csdn.net/u010454030/article/details/69291663 mergedRDD.saveAsTextFile(outputPath, cla ...
- 十分钟学会Java8:lambda表达式和Stream API
Java8 的新特性:Lambda表达式.强大的 Stream API.全新时间日期 API.ConcurrentHashMap.MetaSpace.总得来说,Java8 的新特性使 Java 的运行 ...
- Maven项目pom.xml文件简单解析
Maven项目pom.xml简单解析 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...
- k8s
https://www.cnblogs.com/sheng-jie/p/10591794.html
- Faster R-CNN:详解目标检测的实现过程
本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了 Luminoth 实现,供大家参考. Luminoth 实现:https:// ...
- 渗透测试_利用Burp爆破用户名与密码
burp 全称 Burp Suite, 是用于攻击web 应用程序的集成平台.它包含了许多工具,可以抓包可以爆破也可以扫描漏洞. 主要组件如下: Proxy——是一个拦截HTTP/S的代理服务器,作为 ...