<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Mongo模型 Mongo模型是專門為Mongo數據庫驅動而支持的Model擴展,如果需要操作Mongo數據庫的話,自定義的模型類必須繼承Think\Model\MongoModel。 Mongo模型為操作Mongo數據庫提供了更方便的實用功能和查詢用法,包括: * 對MongoId對象和非對象主鍵的全面支持; * 保持了動態追加字段的特性; * 數字自增字段的支持; * 執行SQL日志的支持; * 字段自動檢測的支持; * 查詢語言的支持; * MongoCode執行的支持; ### 主鍵 系統很好的支持Mongo的主鍵類型,Mongo默認的主鍵名是 _id,也可以通過設置pk屬性改變主鍵名稱(也許你需要用其他字段作為數據表的主鍵),例如: ```php namespace Home\Model; use Think\Model\MongoModel; Class UserModel extends MongoModel { Protected $pk = 'id'; } ``` 主鍵支持三種類型(通過_idType屬性設置),分別是: |類型 |描述| |----|-----| |self::TYPE_OBJECT或者1|(默認類型) 采用MongoId對象,寫入或者查詢的時候傳入數字或者字符會自動轉換,獲取的時候會自動轉換成字符串。| |self::TYPE_INT或者2|整形,支持自動增長,通過設置_autoInc 屬性| |self::TYPE_STRING或者3|字符串hash| 設置主鍵類型示例: ```php namespace Home\Model; use Think\Model\MongoModel; Class UserModel extends MongoModel { Protected $_idType = self::TYPE_INT; protected $_autoinc = true; } ``` ### 字段檢測 MongoModel默認關閉字段檢測,是為了保持Mongo的動態追加字段的特性,如果你的應用不需要使用Mongo動態追加字段的特性,可以設置autoCheckFields為true即可開啟字段檢測功能,提高安全性。一旦開啟字段檢測功能后,系統會自動查找當前數據表的第一條記錄來獲取字段列表。 如果你關閉字段檢測功能的話,將不能使用查詢的字段排除功能。 ### 連貫操作 MongoModel中有部分連貫操作暫時不支持,包括:group、union、join、having、lock和distinct操作。其他連貫操作都可以很好的支持,例如: ```php $Model = new Think\Model\MongoModel("User"); $Model->field("name,email,age")->order("status desc")->limit("10,8")->select(); ``` ### 查詢支持 Mongo數據庫的查詢條件和其他數據庫有所區別。 首先,支持所有的普通查詢和快捷查詢; 表達式查詢增加了一些針對MongoDb的查詢用法; 統計查詢目前只能支持count操作,其他的可能要自己通過MongoCode來實現了; ### MongoModel的組合查詢支持 _string 采用MongoCode查詢 _query 和其他數據庫的請求字符串查詢相同 _complex MongoDb暫不支持 MongoModel提供了MongoCode方法,可以支持MongoCode方式的查詢或者操作。 ### 表達式查詢 表達式查詢采用下面的方式: ```php $map['字段名'] = array('表達式','查詢條件'); ``` 因為MongoDb的特性,MongoModel的表達式查詢和其他的數據庫有所區別,增加了一些新的用法。 表達式不分大小寫,支持的查詢表達式和Mongo原生的查詢語法對照如下: |查詢表達式 |含義 |Mongo原生查詢條件| |----|-----| |neq 或者ne|不等于 |$ne| |lt|小于 |$lt| |lte 或者elt|小于等于 |$lte| |gt|大于 |$gt| |gte 或者egt|大于等于 |$gte| |like|模糊查詢 用MongoRegex正則模擬 |無| |mod|取模運算 |$mod| |in |in查詢|$in| |nin或者not in not|in查詢 |$nin| |all|滿足所有條件 |$all| |between|在某個的區間 |無| |not between|不在某個區間 |無| |exists|字段是否存在 |$exists| |size|限制屬性大小| $size| |type|限制字段類型 |$type| |regex|MongoRegex正則查詢| MongoRegex實現| |exp|使用MongoCode查詢 |無| 注意,在使用like查詢表達式的時候,和mysql的方式略有區別,對應關系如下: |Mysql模糊查詢 |Mongo模糊查詢| |----|----| |array('like','%thinkphp%');|array('like','thinkphp');| |array('like','thinkphp%'); |array('like','^thinkphp');| |array('like','%thinkphp'); |array('like','thinkphp$');| LIKE: 同sql的LIKE 例如: ```php $map['name'] = array('like','^thinkphp'); ``` 查詢條件就變成name like 'thinkphp%' 設置支持 Mongo的數據更新設置用于數據保存和寫入操作,可以支持: |表達式 |含義 |Mongo原生用法| |----|-----| |inc|數字字段增長或減少 |$inc| |set|字段賦值 |$set| |unset|刪除字段值 |$unset| |push|追加一個值到字段(必須是數組類型)里面去 |$push| |pushall|追加多個值到字段(必須是數組類型)里面去 |$pushall| |addtoset|增加一個值到字段(必須是數組類型)內,而且只有當這個值不在數組內才增加 |$addtoset| |pop|根據索引刪除字段(必須是數組字段)中的一個值 |$pop| |pull|根據值刪除字段(必須是數組字段)中的一個值 |$pull| |pullall|一次刪除字段(必須是數組字段)中的多個值 |$pullall| 例如: ```php $data['id'] = 5; $data['score'] = array('inc',2); $Model->save($data); ``` ### 其他 MongoModel增加了幾個方法 - mongoCode 執行MongoCode - getMongoNextId ([字段名]) 獲取自增字段的下一個ID,可用于數字主鍵或者其他需要自增的字段,參數為空的時候表示或者主鍵的。 - Clear 清空當前數據表方法
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看