使用 ObjectId 保存文档的 PHP 正在转换为 Object->oid

Posted

技术标签:

【中文标题】使用 ObjectId 保存文档的 PHP 正在转换为 Object->oid【英文标题】:PHP saving a document with an ObjectId is being converted to Object->oid 【发布时间】:2021-12-28 21:13:51 【问题描述】:

我正在使用$ownership->_id = new MongoDB\BSON\ObjectId($ownership->_id); 保存一些文档,但除了在数据库中保存为ObjectId 之外,它还使用"oid" : "60f98b137af3950d2a7e6c86" 保存为Object

它阻止我执行$lookup,因为它不是另一个集合中文档的ObjectId

有人参加过吗?

【问题讨论】:

【参考方案1】:

我发现了问题。有人将代码放在我们的 MongoDB 包装器中以将对象转换为数组。因此,MongoDB\BSON\ObjectId 被转换为一个数组,其字符串元素的键为 oid

【讨论】:

以上是关于使用 ObjectId 保存文档的 PHP 正在转换为 Object->oid的主要内容,如果未能解决你的问题,请参考以下文章

在 mongoose 中保存时使用 ObjectId 参考文档

Mongoose - 在保存文档之前为每个对象生成 ObjectID

MongoDB PHP:如何使用 JSON 提要获取 ObjectId? (它是空白的)

MongoDB - 尽管没有唯一键集,但尝试保存多个文档会导致模式的 ObjectId 出现重复键错误

Mongoose + MongoDB - 尝试使用 POSTMAN 保存后,转换为 ObjectID 的值失败

如何使用带有 Mongoose 的 addToSet 添加多个 ObjectId?