吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4320|回复: 8
收起左侧

[其他转载] [转载]php与mongodb在我的撮合下,不得不说的秘密

[复制链接]
woodenwang 发表于 2018-7-18 11:01
本帖最后由 wushaominkk 于 2018-7-18 16:42 编辑

    此文谨献给正在枯燥无味的“程序猿”“攻城狮”。
    这个故事发生在windows省apache市,我们的主人公是php5.6n(这个任务大家都很熟悉啦,我们就不做介绍了,后文以php代替)与mongodb,我(php插件);

1. mongodb的简介:
        mongodb的家在E:\ProgramFile\mongodb(下载mongodb到E:\ProgramFile\mongodb)
        mongodb最近找了新工作在E:\data\db她可以在家里的bin车库下打开mongo的车,但是mongo车必须使用mongod的油;(创建mongodb存储文件,打开服务器mongod,打开客户端mongo,命令行操作:
[Bash shell] 纯文本查看 复制代码
E:[/size][/font][font=宋体][size=3]mkdir data\db
cd ../../
ProgramFile\mongodb\bin\mongod
#重新新打开一个cmd;
E:
[/size][/font]
[font=宋体][size=3]ProgramFile\mongodb\bin\mongo

    鉴于mongdb是一个  javascript shell 我们先做一个简单的运算,就像在chrome控制台上的js语言一样(测试略);
    接着我们做一个‘数据库’的操作
                首先我们插入一条数据:
                        db.w3r.insert({X:5})        //这是将5插入到w3r集合的x字段中(我们可以使用JS的注释方式)
                        db.w3r.find()                //这是查找
                显示数据即成功!
)
    mongodb有我知道的这么几种职业(基本数据类型,并不完全,详细信息查看手册)
                键值对(Bson):类似与JS 的json;(Bson就是二进制的Json,Binary JSON)
                集合:类似与RDBMS中的表格,但无固定结构                {“id”:"01"}{"id":"02","name":"woodenwang"}
                capped collections:类似于RRD(读接收数据寄存器)
                元数据
    mongodb会的技能有这么几种(基本语法,此处,我们皆用test集合做演示):
                显示所有数据库                 show dbs
                显示当前数据库                 db
                创建数据库                        use test                                //存在就进入,反之创建,新建的数据库插入数据即可显现;
                删除数据库                        db.dropDatabase()
                删除集合                        db.collection.drop()
                插入集合                        db.test.insert({"title":"你想不到优秀","content":"有些人的优秀,你永远也想象不到。多么可怕。多么恐惧!"})
                更新集合                        db.collection.update(查询条件,更新的数据,不存在查询的记录是否新建默认否,只更新找到的第一条数据)
                删除集合                        db.collection.remove()        //有3个可选参数,第一个为删除文档的条件,另一个为是否删除一个文件,最后一个是抛出异常的级别
                查询文档                        db.test.find()
                                                        db.test.find().pretty()        //格式化方法显示文档;
                以上是增删改查,其他请查阅手册

2.php与mongodb 的故事:
    此刻我也要出场了,作为专业接线人(接红线),我也要知道php的能力(php版本)家在哪(操作系统,此处是编译php的操作系统)是否安全可靠(php线程安全),此时我也得稍微介绍一下我自己,我有两个职业,分别是mongo扩展和mongdb扩展,具体能力如下:
      原本用 mongo 一些查询操作返回一个数组的,在 mongodb 中变成游标读取的形式。
         mongo插件 这个扩展已经废弃了,不过 bug 和 security 方面的问题还会继续修复,不支持PHP7
         mongodb插件 支持PHP7,同时不断加入 MongoDB 新版本的特性支持
   为了以后发展的更好我们当然选择mongodb插件喽,此时我们要给php包装(引入插件)了,鉴于我们的了解(我的配置是windows下php5.6n(n就是nts,即非线程安全)compiler:vc11,Architecture:X86,Thread Safety:disable(phpinfo查看))所以我们需要给php购买(下载)php_mongodb-1.2.9-5.6-nts-vc11-x86包;
    接下来就是开包,杂物我们不需要,直接拿出(粘贴)php_mongodb.dll,放到php的口袋里(粘贴在php安装根目录中的ext文件夹中),当然还要在php的身份证中加入这个包装(打开php.ini文件并将extension=php_mongodb.dll写入),重新区办理身份证(重启服务器,查看phpinfo,存在即成功,不存在请返回查找插件);
    最后是撮合php与mongo:
      额,此处真所谓是阅尽千帆啊,
                $m=new MongoDB();
                $m=new MongoClient();
                这些都不可以,有说插件ts与nts的关系,还有说啥来着,忘了;
                然后我们用phpStorm点击跳转MongoDB,MongoClient竟然都可以跳过去;但是网页上就是显示        Class 'MongoDB' not found
                查看mongoDB 的服务器也没有动静
                这种感觉就像去饭店吃饭,吃的很爽,但是发现无法支付!!!!!怎么办?麻烦朋友过来了;
      
[PHP] 纯文本查看 复制代码
//以下内容源于php官网$manager = new MongoDB\Driver\Manager();
/* Insert some documents so that our query returns information */
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['name' => 'Ceres', 'size' => 946, 'distance' => 2.766]);
$bulkWrite->insert(['name' => 'Vesta', 'size' => 525, 'distance' => 2.362]);
$manager->executeBulkWrite("test.asteroids", $bulkWrite);

/* Query for all the items in the collection */
$query = new MongoDB\Driver\Query( [] );

/* Query the "asteroids" collection of the "test" database */
$cursor = $manager->executeQuery("test.asteroids", $query);

/* $cursor now contains an object that wraps around the result set. Use
 * foreach() to iterate over all the result */
foreach($cursor as $document) {
    print_r($document);
}

        在网页中打开。显示出数组,查看服务器会有显示集合被写入;
        此刻欢天喜地入洞房;
        以后便是随他们发展了






故事纯属编造,切勿相信,php与mongo链接确实是真真切切的从一个个坑里爬出来,很多地方或许也没弄明白,最后的那个成功的方法灵感来源于java的JDBSC:ODBC连接器,

这里下载MongoDB中文手册下载地址:
mong手册.txt (64 Bytes, 下载次数: 8)





你有一个热心,我有一个热心,我们就有两个热心!


免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
Palantir + 1 + 1 我很赞同!
戒为良药 + 1 + 1 我很赞同!
兔子爱吃香蕉皮 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| woodenwang 发表于 2018-7-18 11:27
  无故事版操作,后缀名是 .study,直接使用文本编辑器打开即可
   链接: https://pan.baidu.com/s/1HQoqt5ubZrelbJWkZk_g0A 密码: 52pj
tjlbj 发表于 2018-7-18 11:18
看这个文章还真有点费劲,可能不懂的人更不容易懂
兔子爱吃香蕉皮 发表于 2018-7-18 11:24
 楼主| woodenwang 发表于 2018-7-18 11:26
tjlbj 发表于 2018-7-18 11:18
看这个文章还真有点费劲,可能不懂的人更不容易懂

仔细想想确实有点乱

wmcn 发表于 2018-7-18 11:26
厉害了  学习下
素问何问 发表于 2018-7-18 12:01
不能用mysql的思维来学习mongo否则你展不开 附:https://github.com/doctrine/mongodb-odm
demon_lin 发表于 2018-7-18 14:23
你的排版。。
凯飒风霜 发表于 2018-7-22 00:03
很好,可以试着操作一波
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-3 15:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表