thinkPHP5框架mongodb扩展安装及特殊操作示例
所属:Thinkphp教程 时间:2022-06-09 17:43:32 点击:188
实例讲述了TP5(thinkPHP5)框架mongodb扩展安装及特殊操作。具体如下:
ThinkPHP5.0 MongoDb驱动
首先安装官方的mongodb扩展:
http://pecl.php.net/package/mongodb
找到对应的php版本的扩展
然后,配置应用的数据库配置文件database.php的type参数为:
type => hinkmongoConnection,
即可正常使用MongoDb,例如:
使用最新mongodb扩展
Db::name(demo)
->find();
Db::name(demo)
->field(id,name)
->limit(10)
->order(id,desc)
->select();
或者使用模型操作:
User::get(1);
User::all(1,2,3);
MongoDb默认的主键是_id并且是一个ObjectID对象,如果需要和mysql一样使用id作为主键,可以如下参数:
// 强制把_id转换为id
pk_convert_id => true,
tp5 Mongodb特殊操作
Push操作
添加数据
public function add(){
$this->data = [
作者 => tuzi,
年龄 => 22,
标题 => 防塔与补兵,
评论 => [
[
序号 => 001,
内容 => 五杀
]
]
];
$res = Db::table(document)->insert($this->data);
if($res){
echo "success";
}else{
echo "error";
}
}
结果
array(1) {[0] => array(5) {["_id"] => object(MongoDBBSONObjectId)#12 (1) {["oid"] => string(24) "5a51f73083869e4b65549c36"}["作者"] => string(4) "tuzi"["年龄"] => string(2) "22"["标题"] => string(15) "防塔与补兵"["评论"] => array(1) {[0] => array(2) {["序号"] => string(3) "001"["内容"] => string(6) "五杀"}}}}
利用push更新数据
public function update()
{
$update_data[评论] = [
$push,
[
序号 => 002,
内容 => 三杀
]
];
$update_res = Db::table(document)->where(标题,防塔与补兵)->update($update_data);
if($update_res){
echo "success";
}else{
echo "error";
}
}
结果
array(1) {[0] => array(5) {["_id"] => object(MongoDBBSONObjectId)#12 (1) {["oid"] => string(24) "5a51f73083869e4b65549c36"}["作者"] => string(4) "tuzi"["年龄"] => string(2) "22"["标题"] => string(15) "防塔与补兵"["评论"] => array(2) {[0] => array(2) {["序号"] => string(3) "001"["内容"] => string(6) "五杀"}[1] => array(2) {["序号"] => string(3) "002"["内容"] => string(6) "三杀"}}}}