少侠十一郎 發表於 2021-5-27 11:07:00

tp6使用MongoDB

<p>tp6使用MongoDB需要配置复制集:</p>
<p><em>配置方法链接</em></p>
<p><em>将单节点转为复制集 — MongoDB Manual 3.4 (mongoing.com)</em></p>
<p>&nbsp;</p>
<p>tp6数据库配置文件内容:&nbsp;</p>
<p>database.conf</p>
<div class="cnblogs_code">
<pre>    'mongodb'=&gt;<span style="color: rgba(0, 0, 0, 1)">[
            </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 数据库类型</span>
            'type'            =&gt; 'mongo',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 服务器地址</span>
            'hostname'          =&gt; '127.0.0.1',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 数据库名</span>
            'database'          =&gt; 'testdb',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 用户名</span>
            'username'          =&gt; 'root',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 密码</span>
            'password'          =&gt; '123456',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 端口</span>
            'hostport'          =&gt; '27017',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 数据库连接参数</span>
            'params'            =&gt; [],
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 数据库调试模式</span>
            'debug'             =&gt; env('database.debug', <span style="color: rgba(0, 0, 255, 1)">true</span>),
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)</span>
            'deploy'            =&gt; 0,
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 数据库读写是否分离 主从式有效</span>
            'rw_separate'       =&gt; <span style="color: rgba(0, 0, 255, 1)">false</span>,
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 监听SQL</span>
            'trigger_sql'       =&gt; <span style="color: rgba(0, 0, 255, 1)">true</span>,
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 读写分离后 主服务器数量</span>
            'master_num'      =&gt; 1,
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 指定从服务器序号</span>
            'slave_no'          =&gt; '',
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 是否严格检查字段是否存在</span>
            'fields_strict'   =&gt; <span style="color: rgba(0, 0, 255, 1)">true</span>,
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 是否需要断线重连</span>
            'break_reconnect'   =&gt; <span style="color: rgba(0, 0, 255, 1)">false</span>,
            <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 字段缓存路径</span>
            'schema_cache_path' =&gt; app()-&gt;getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,<span style="color: rgba(0, 0, 0, 1)">
      ]</span></pre>
</div>
<p>Db类查询数据:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 128, 1)">    $data</span> = Db::connect('mongodb'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;table('user_info'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;withoutField('_id,device_id'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;where(['device_id' =&gt; '1234567'<span style="color: rgba(0, 0, 0, 1)">])
            </span>-&gt;<span style="color: rgba(0, 0, 0, 1)">select();
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> json(<span style="color: rgba(128, 0, 128, 1)">$data</span>);</pre>
</div>
<p>原子操作:</p>
<div class="cnblogs_code">
<pre>    Db::connect('mongodb'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;table('user_info'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;where(['uid'=&gt;['=',1<span style="color: rgba(0, 0, 0, 1)">]])
            </span>-&gt;update(['test_col'=&gt;['<span style="color: rgba(255, 0, 0, 1)">$set</span>',['field_1'=&gt;1,'field_2'=&gt;2]]]);</pre>
</div>
<h4><em>$set</em></h4>
<p><em>用来指定一个键并更新键值,若键不存在并创建。</em></p>
<h2><span style="font-size: 14px">原子操作常用命令</span></h2>
<h2><em><span style="font-size: 14px">MongoDB 原子操作 | 菜鸟教程 (runoob.com)</span></em></h2>
<p>&nbsp;</p>
<p>&nbsp;修改内嵌文档内容:</p>
<div class="cnblogs_code">
<pre>    Db::connect('mongodb'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;table('user_info'<span style="color: rgba(0, 0, 0, 1)">)
            </span>-&gt;where(['uid'=&gt;['=',1<span style="color: rgba(0, 0, 0, 1)">]])
            </span>-&gt;update(['<span style="color: rgba(255, 0, 0, 1)">test_col.field_1</span>'=&gt;3);</pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/codeninja/p/14817064.html
頁: [1]
查看完整版本: tp6使用MongoDB