Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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从mongodb获取ID?_Php_Mongodb_Vue.js_Axios - Fatal编程技术网

如何使用PHP从mongodb获取ID?

如何使用PHP从mongodb获取ID?,php,mongodb,vue.js,axios,Php,Mongodb,Vue.js,Axios,我正在尝试从mongodb获取ID,以便使用axios通过PHP和vue.js从一个简单的CRUD应用程序中修改和删除用户 当我插入任何用户时,我得到这个id { "$oid": "5a8fd1ef1233610e40007667" } 我只需要mongodb自己生成的ID "5a8fd1ef1233610e40007667" 我使用POST获取ID,这是我使用var_dump()时得到的 你知道怎么拿到身份证吗?我已经试过几件事了,希望你们能帮我看看这门课 在MongoDB中,存储在集合中

我正在尝试从mongodb获取ID,以便使用axios通过PHP和vue.js从一个简单的CRUD应用程序中修改和删除用户

当我插入任何用户时,我得到这个id

{ "$oid": "5a8fd1ef1233610e40007667" }
我只需要mongodb自己生成的ID

"5a8fd1ef1233610e40007667"
我使用POST获取ID,这是我使用var_dump()时得到的

你知道怎么拿到身份证吗?我已经试过几件事了,希望你们能帮我看看这门课

在MongoDB中,存储在集合中的每个文档都需要一个唯一的_id字段作为主键。如果插入的文档省略了_id字段,则驱动程序会自动为_id字段生成ObjectId

特别是
MongoDB\BSON\ObjectId::\uu toString
,它返回ObjectId的十六进制表示形式。您可以通过将ObjectId强制转换为字符串来调用
\uuuu toString
,例如:

$stringID = (string)$objectID;
例如,插入记录时不需要创建ObjectID(基于注释)


mongo驱动程序将创建并设置“_id”字段,
insert
通过引用获取数组并可以对其进行更改。

使用BulkWrite在数据库中插入id的可能重复项$bulk=newmongodb\Driver\BulkWrite$doc=['\u id'=>new MongoDB\BSON\ObjectID,'firstname'=>$firstname,'lastname'=>$lastname]$批量->插入($doc);这将生成一个由24个字母和数字组成的随机数。请查看显示如何正确执行此操作的更新答案。您是对的,我不需要创建ObjectID。我这样做了,在echo中我得到了字符串(0)”。请阅读
BulkWrite
,确保您正在调用
executeBulkWrite
,并检查它的返回值。似乎
BulkWrite
不是您想要的。但是,这并不能回答我的问题。你说的是插入,我的问题是删除和更新。我仍然得到
[object object]
。我尝试过在没有vue.js的情况下处理它,效果非常好。我想,“问题”是vue.js和mongodb一起工作的时候。不管怎样,谢谢你的回复。
$stringID = (string)$objectID;
$bulk = new MongoDB\Driver\BulkWrite();
$doc  = [ 'firstname' => $firstname, 'lastname' => $lastname ];
$bulk->insert($doc);
$result = $manager->executeBulkWrite('db.collection', $bulk);
var_dump($result);