PHP MongoDB 使用 MongoId Object _id 查询一条记录
Posted
技术标签:
【中文标题】PHP MongoDB 使用 MongoId Object _id 查询一条记录【英文标题】:PHP MongoDB query for one record using MongoId Object _id 【发布时间】:2014-06-24 17:36:32 【问题描述】:我目前正在学习 MongoDB。我看过查询集合中字段的教程。我想知道如何使用 MongoId Object _id 值在 php 中进行查询。与我的问题最接近的答案是Perl Mongo find object Id。
另外,有没有办法在创建新记录时,将 Object _id 值记录在该记录的另一个字段中?
谢谢。
更新:
除了我在下面选择的答案之外,一位同事也发现了这个:
mongodb php findone() by ID
【问题讨论】:
【参考方案1】:这应该会有所帮助,来自 mongodb 网站 (http://blog.mongodb.org/post/26903435041/mongodb-for-the-php-mind-part-2):
// This is only a string, this is NOT a MongoId
$mongoid = '4cb4ab6d7addf98506010000';
// You will not find anything by searching by string alone
$nothing = $collection->find(array('_id' => $mongoid));
echo $nothing->count(); // This should echo 0
// THIS is how you find something by MongoId
$realmongoid = new MongoId($mongoid);
// Pass the actual instance of the MongoId object to the query
$something = $collection->find(array('_id' => $realmongoid));
echo $something->count(); // This should echo 1
关于您的部分问题,我不知道有任何自动方式将 objectid 存储在另一个字段中,但我也不知道您为什么要这样做 - 您已经将它存储在 _id 中,为什么你想要它在另一个领域吗?
【讨论】:
jpsf:感谢您的回复。我的第二个问题是关于我在教程中看到的东西,我应该对此进行详细说明。我同意没有必要这样做(只是不知道它是否使使用 MongoDB 进行此类搜索更容易)。以上是关于PHP MongoDB 使用 MongoId Object _id 查询一条记录的主要内容,如果未能解决你的问题,请参考以下文章
如何将内存中的 MongoDB 与 Rails、Mongoid 和 Rspec 一起使用?
使用 Mongoid 的 MongoDB 对话/私人消息模式
批量查找 mongoDB 记录(使用 mongoid ruby 适配器)