Linux安装参考:https://blog.csdn.net/gaokcl/article/details/83587077
最後在文章后面,介绍Windows10下 php7的扩展与安装,亦可以参考:https://blog.csdn.net/xiaoxiong_web/article/details/78350316
wamp安装php的MongoDB扩展:https://blog.csdn.net/qq_33210743/article/details/81533980
php+ MongoDB 增删改查 https://blog.csdn.net/gaokcl/article/details/85274958
0,Windows10下MongoDB环境变量配置:
1,在环境变量 Path 后面增加 ;D:\wamp64\bin\php\php7.0.10
C:\Users\idea\AppData\Local\Microsoft\WindowsApps;D:\wamp64\bin\php\php7.0.10
2,下载 mongodb.dll 放在 wamp 安装目录 的
D:\wamp64\bin\php\php5.6.25\ext
D:\wamp64\bin\php\php7.0.10\ext
3,下载 mongodb.dll 的版本 要特别注意
重点:wamp环境PHP安装mongodb扩展:
下载地址: http://pecl.php.net/package/mongo 选择符合自己版本的
php.ini: extension=php_mongo.dll 或者 extension=php_mongodb.dll (下载dll的决定的)
Path 后面增加 ;D:\wamp64\bin\php\php7.0.10
参考: https://blog.csdn.net/longyakun666/article/details/79880721 # 下载以及安装介绍的比较详细
1,下载MongoDB:
地址:https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.0-signed.msi/download
2,安装 Mongodb
1,安装位置 :D:\Program Files\MongoDB\Server\4.0 (选择next,Custom(自定义))
2,文件夹配置:D:\Program Files\MongoDB\Server\4.0
我自定义安装D 盘下,进入到MongoDB\Server\4.0 下创建DATA文件夹(一般是有了,不要创建),
文件夹内创建DB,DB内创建mongo.log。
复制路径1 D:\Program Files\MongoDB\Server\4.0\data\db\
复制路径2 D:\Program Files\MongoDB\Server\4.0\data\db\logs\mongo.log # 备用
3,shift + 右击打开cmd 或者win+r 切换路径到
d:
cd D:\Program Files\MongoDB\Server\4.0\bin\ # 这里切换到,输入 mongod,可以使用了
4,开始配置文件:mongod --dbpath D:\Program Files\MongoDB\Server\4.0\data\db\
port=27017 和 http://localhost:27017/ :
安装配置成功,运行http://localhost:27017/ 显示:
It looks like you are trying to access MongoDB over HTTP on the native driver port.
5,注意 cmd 打开的窗口不要关闭
*************************************************** 最终效果图 **********************************************************************************
---- end 出现上述的,表示成功
3,每次命令行模式启动太麻烦,有没有更简洁的方法呢?
管理员模式启动cmd:
切换默认路径到 D:\Program Files\MongoDB\Server\4.0\bin>
把下面的指令输入/copy后回车,
mongod --bind_ip 0.0.0.0 --logpath D:\Program Files\MongoDB\Server\4.0\data\db\logs\mongo.log --logappend --dbpath D:\Program Files\MongoDB\Server\4.0\data\db --port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
****注释:
--bind_ip 0.0.0.0 任意ip,log环境变量配置 -logappend log追加方式写入
,mongoDB的环境变量配置,端口、服务名、安装配置,然后回车
*****************************************************************
接下来到WIndows系统服务里查看mongoDB服务是否启动,未启动就启动它,到浏览器输入http://localhost:27017/ 回车,查看启动成功没
指令模式太繁琐,试试Robomongo,下载地址见上面,下载后正常安装就好,配合python、redis可以浪了
=======================================================================================
Windows10下 php7扩展添加
打开网址:https://pecl.php.net/package/mongodb #到外网(国内有可能不能访问)
选择适合自己的版本
打开php.ini 添加
extension=php_mongodb.dll
windows环境下查看是否安装成功
php -m|findstr mongodb
mongodb
php7需要使用全新的api,只支持MongoDB。只能写原生的SQL,使用起来非常不方便。
Mongo官网使用php封闭的一个扩展可以兼容原先的Mongo扩展,使用开发效率有很大的提升。
https://github.com/mongodb/mongo-php-library
写个测试例子
$bulk = new MongoDB\Driver\BulkWrite();
$bulk->insert(['_id' => 1, 'x' => 1]);
$bulk->insert(['_id' => 2, 'x' => 2]);$bulk->update(['x' => 2], ['$set' => ['x' => 1]], ['multi' => false, 'upsert' => false]);
$bulk->update(['x' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);
$bulk->update(['_id' => 3], ['$set' => ['x' => 3]], ['multi' => false, 'upsert' => true]);$bulk->insert(['_id' => 4, 'x' => 2]);
$bulk->delete(['x' => 1], ['limit' => 1]);
$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);
$result = $manager->executeBulkWrite('db.test', $bulk, $writeConcern);printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Matched %d document(s)\n", $result->getMatchedCount());
printf("Updated %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted %d document(s)\n", $result->getDeletedCount());foreach ($result->getUpsertedIds() as $index => $id) {
printf('upsertedId[%d]: ', $index);
var_dump($id);
}/* If the WriteConcern could not be fulfilled */
if ($writeConcernError = $result->getWriteConcernError()) {
printf("%s (%d): %s\n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}