php查询mongodb数据库记录id号的例子
取MONGOID对象的ID字符串值其实就像mysql中返回数据记录的ID号了,这样的做法是非常的简单了,下面我们一起来看看。
使用GridFS传文件到MongoDB,会返回一个MongoId对象,通常我们需要把这个对象中的$id值以字符串形式保存到数据库中,作为取文件的标识,那么PHP如何取出MongoID对象的ID字符串值呢?
在php中通过_id 在mongodb中查找特定记录:
查询条件需要这样写:array("_id"=>new MongoId("$id"))这个MongoId形如:
object(MongoId)#23 (1) {
["$id"] => string(24) "558a7dab988d4d10140058b1"
}
我们要用PHP取出["$id"]的值,问题是这个键名是这种形式的,用$re->$id肯定不对,所以这样取值:
//存储上传的excel到MongoDB
public function saveToMongo($file){
$id = $this->getGridFS()->storeFile($file);
return $id->{'$id'};
}
这样就OK了。
<?php
$database = 'test';
$collection = 'runoob';
$mongoClient = new MongoClient();
$MongoCollection = $mongoClient->selectDB($database)->selectCollection($collection);
foreach ($MongoCollection->find() as $item) {
echo 'MongoId:', $item['_id']->{'$id'}, '<br />';
mongodb+php通过_id查询
在php中通过_id 在mongodb中查找特定记录:
正确: $
where
=array(
"_id"
=>
new
MongoId($_GET[
'id'
]));
错误:$result=$collection->find(['_id'=>'6335673fc34fafe03a000040']);
<?php
$conn=new Mongo("127.0.0.1:27017"); #连接指定端口远程主机
$db=$conn->sky; #选择mydb数据库
$collection=$db->bobo; #选择集合(选择’表’)
//** 查询一条数据 **/
//$cursor = $collection->findOne();
$where=array("_id"=>new MongoId($_GET['id']));
$cursor = $collection->find($where);
/**
* 注意:findOne()获得结果集后不能使用snapshot(),fields()等函数;
*/
$array ='';
foreach ($cursor as $id => $value) {
$array[]=$value;
}
echo "<pre>";
print_r($array);
echo "</pre>";
$conn->close(); #关闭连接
?>
赞赏码


非学,无以致疑;非问,无以广识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2021-10-20 Centos 根据端口查看占用进程 根据进程查看占用端口
2021-10-20 Elasticsearch 之Mapping设置
2021-10-20 实战!聊聊PHP如何使用 ElasticSearch 做搜索
2018-10-20 最完美解决Nginx部署ThinkPHP项目的办法
2018-10-20 最完美解决Nginx部署ThinkPHP项目的办法
2018-10-20 nginx 80端口重定向到443端口
2018-10-20 nginx 80端口重定向到443端口