PHP mongoDB 操作
发布日期:2025-05-02 05:17:40
浏览次数:12
分类:精选文章
本文共 2460 字,大约阅读时间需要 8 分钟。
MongoDB操作笔记
1. 连接数据库
连接MongoDB数据库时,可以使用以下方式:
$conn = new Mongo();// 连接本地主机,默认端口$conn = new Mongo("172.21.15.69");// 连接远程主机$conn = new Mongo("xiaocai.loc:10086");// 连接指定端口的远程主机$conn = new Mongo("xiaocai.loc", array("replicaSet" => true));// 持久连接$conn = new Mongo("mongodb://sa:123@localhost");// 连接多个服务器$conn = new Mongo("mongodb://localhost:27017,localhost:27018");// 使用域套接字$conn = new Mongo("mongodb://admin_miss:miss@localhost:27017/test"); 详细信息可参考 PHP手册 - 连接MongoDB。
2. 选择数据库与表
选择数据库和集合时,可以使用以下方式:
$db = $conn->mydb;// 或者$db = $conn->selectDB("mydb");$collection = $db->column;// 或者$collection = $conn->mydb->column; 注意:数据库和集合在不存在时会自动创建。
3. 插入文档
向集合中插入数据:
$array = array("column_name" => "col" . rand(100, 999), "column_exp" => "xiaocai");$result = $collection->insert($array); 插入成功返回 true。
安全插入数据:
$result = $collection->insert($array, true);
返回数组,包含 err、n 和 ok。
完整格式:
insert(array $a, array $options = array())
参数包括 safe、fsync 和 timeout,默认值均为 false。
4. 更新文档
更新文档时,可以使用以下方式:
$where = array("column_name" => "col123");$newdata = array("column_exp" => "GGGGGGG", "column_fid" => 444);$result = $collection->update($where, array("$set" => $newdata)); 替换更新:
$newdata = array("column_exp" => "HHHHHHHHH", "column_fid" => 123);$result = $collection->update($where, $newdata); 批量更新:
$newdata = array("column_exp" => "multiple", "91u" => 684435);$result = $collection->update($where, array("$set" => $newdata), array("multiple" => true)); 删除节点:
$result = $collection->update($where, array("$unset" => "column_exp")); 5. 删除文档
删除文档时,可以使用以下方式:
$collection->remove(array("column_name" => "col399"));$collection->remove(); 删除指定 ObjectId:
$id = new MongoId("4d638ea1d549a02801000011");$collection->remove(array("_id" => (object)$id)); 6. 查询文档
查询文档时,可以使用以下方式:
echo "count: " . $collection->count();
带条件查询:
echo "count: " . $collection->count(array("type" => array("$gt" => 50, "$lte" => 74))); 查询多条记录:
$cursor = $collection->find();foreach ($cursor as $id => $value) { echo "$id: " . var_dump($value) . "\n";} 查询一条记录:
$cursor = $collection->findOne();
限制查询结果:
$cursor = $collection->find()->limit(5)->skip(0);
排序查询结果:
$cursor = $collection->find()->sort(array("age" => -1, "type" => 1)); 7. 索引管理
创建索引:
$collection->ensureIndex(array("age" => 1, "type" => -1));$collection->ensureIndex(array("age" => 1, "type" => -1), array("background" => true));$collection->ensureIndex(array("age" => 1, "type" => -1), array("unique" => true)); 8. 文档聚类
MongoDB 不支持文档聚类功能,以上内容仅为操作指南。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2026年05月28日 15时03分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
RabbitMQ - 死信、TTL原理、延迟队列安装和配置
2023-03-01
PHP数据访问的多重查询(租房子查询)
2023-03-01
RabbitMQ - 如保证消息的可靠性?(消息确认、消息持久化、失败重试机制)
2023-03-01
RabbitMQ - 基于 SpringAMQP 带你实现五种消息队列模型
2023-03-01
php数组函数分析--array_column
2023-03-01
php数组去重复数据的小例子
2023-03-01
php数组实现:哈希 +双向链表
2023-03-01
PHP数组排序函数array_multisort()函数详解(二)
2023-03-01
php数组的几个函数和超全局变量
2023-03-01
PHP文件上传详解
2023-03-01
PHP文件锁
2023-03-01
php文本框输入制定文本,php – 当用户没有向文本框输入任何内容时...
2023-03-01
PHP时间戳和日期相互转换操作总结
2023-03-01
php时间戳知识点,php 时间戳函数总结与示例
2023-03-01
php更新数据库失败,php – 无法更新MySQL数据库
2023-03-01
php机器人聊天对话框,基于AIML的PHP聊天机器人
2023-03-01
PHP查找数组中最大值与最小值
2023-03-01
php查最大值,在PHP数组中查找最大值
2023-03-01
php根据年月日计算年龄
2023-03-01