当前位置:  开发笔记 > 编程语言 > 正文

在mongoDB中查找具有ObjectID的文档

如何解决《在mongoDB中查找具有ObjectID的文档》经验,为你挑选了2个好方法。

当我将一些文档插入集合(没有ObjectID)时,mongoDB添加了自己的ObjectID.

我想通过其唯一的ObjectID查询文档.

$db->collection_name->find(array('_id'=>'4e49fd8269fd873c0a000000')));

它不能用于'4e49fd8269fd873c0a000000'前面的MongoID前缀或ObjectID.

使用PHP中的mongoDB通过ObjectID进行查询的正确方法是什么?



1> Phil..:

很确定你必须使用一个MongoId物体,例如

$item = $collection->findOne(array(
    '_id' => new MongoId('4e49fd8269fd873c0a000000')));

查询页面上的注释有点迟钝,但确实提到了......

除非用户另有指定,否则_id字段是MongoId.最常见的错误是使用字符串来匹配MongoId.请记住,这些是两种不同的数据类型,并且不会以字符串"array()"与空数组不同的方式相互匹配



2> coolgod..:

我认为现在API改变了MongoDB\BSON\ObjectID,你也可以[]用来表示PHP 5.4+中的数组,所以它应该是:

$item = $collection->findOne(['_id' => new MongoDB\BSON\ObjectID( idToken )]);

根据菲尔的回答.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有