模型[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
原文: http://doc.cmlphp.com/devintro/model/mongodb/readme.html