# 模型[MongoDB]
本小节介绍常用的orm MongoDB操作。详细的api 点这里
在CmlPHP
中对MongoDB
的操作基本和MySql
一致,大部分操作可以参考模型mysql 这里主要列出操作MongoDB与Mysql不同的地方:
不支持
groupBy
、having
、join
、leftJoin
、rightJoin
、union
、startTransAction
、commit
、savePoint
、rollBack
、callProcedure
等聚合及事务相关的方法and和or有差别 如:
Model::getInstance()->db() ->table('users') ->lBrackets() ->whereLt('id', 3) ->_or() ->where('status', 1) ->rBrackets() ->where('status', 0) ->select()
执行的
mysqlsql
语句为SELECT * FROM hadm_users WHERE (id < '3' OR status = '1' ) AND status = '0'
执行的mongodb
语句为{"id":{"$lt":3},"$or":[{"status":1},{"status":0}]}
总结一下
使用
MongoDb
驱动时lBrackets
、rBrackets
。只对$or
有效_or()
在mysql中只代表在WHERE
中生成一个OR
。而在MongoDB
中则代表此后的操作都为$or
中的条件。除非调用_and()
将条件变为and下getDbFields
因为mongodb中collection对字段是没有做强制一制的。这边默认获取第一条数据的所有字段返回getPk
mongo直接返回 '_id'MongoDB
不支持设置自增主键。可以通过getMongoDbAutoIncKey
获取一个自增值。详细Api
# 详细Api
请参考 CmlPHP Api手册