Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php创建新的MongoId对象_Php_Arrays_Mongodb - Fatal编程技术网

使用php创建新的MongoId对象

使用php创建新的MongoId对象,php,arrays,mongodb,Php,Arrays,Mongodb,我正试图通过PHP在MongoDB上创建具有个性化ID的新对象,如下所示: $user = Array( '_id' => "$id", 'name' => $name, ); 问题是,当我查询ID时,我需要使用以下命令: $query = Array( '_id' => "$id" ); 而不是更合适的 $query = Array( '_id' => new MongoId("$id") ); 强迫我更改所有查询

我正试图通过PHP在MongoDB上创建具有个性化ID的新对象,如下所示:

    $user = Array(
        '_id'  => "$id",
        'name' => $name,
    );
问题是,当我查询ID时,我需要使用以下命令:

$query = Array( '_id' => "$id" );
而不是更合适的

$query = Array( '_id' => new MongoId("$id") );
强迫我更改所有查询。我想我是通过修复插入来完成的,通过放置'_id'=>newmongoid($id'),但是,如果我使用它,它只会创建默认值 mongodb id,insead我的个性化

我怎样才能解决这个问题


提前谢谢

我对你在这里的要求有点困惑,不过,我相信我会理解的

如果您使用的
\u id
与MongoDB用于行主键的默认
ObjectId
不同,则不应使用
ObjectId
或实际上使用
MongoId
创建该对象

当您使用提供的默认
\u id
时,您应该只使用
MongoId
,如果您使用自己的
ObjectId
MongoId
)将无法按预期运行


因此,这里的答案是停止使用本页所述的
MongoId

:它必须是24个十六进制字符。我现在能做什么?我的问题是:删除MongoId对象是否会对DB的功能造成问题?谢谢。@johnsmith不,MongoId只是OjbectId的一个PHP端包装器,所以如果您没有在您的_id中使用ObjectID,就没有问题了