如何解决使用 PHP 从 MongoDB 中检索空对象而没有空数组 限制
问题
Mongo 中的空对象在 PHP 中被解码为空数组。这导致了一个问题,在我执行 json_encode($data)
之后,json 中应该是 {}
的值被编码为 []
。
配置
图像你有一个像这样映射到 Mongo 的文档:
/**
* @MongoDB\EmbeddedDocument()
*/
class RandomForm
{
/**
* @var mixed
* @MongoDB\Field(type="raw")
*/
private $content;
}
为什么?前端绘制“随机”表单(它知道其他来源的表单应该是什么样子)并希望保存数据。为此,前端只需将 JSON 发送到后端。当前端要求数据时,它希望将其取回。无论出于何种原因,我们都希望通过数据库中的随机字段进行搜索。
除非前端向我们发送空对象,否则它工作得很好,该对象作为空 Object
存储到 Mongo,但 PHP 发挥了作用并将其转换为空 Array
。
有什么办法可以让 Mongo 保持原始数据类型(对象或数组)?
限制
您不能将所有空数组都转换为对象 (\stdClass()
),因为有时它仍然应该是空数组。
Mongo 人说他们不会在驱动程序中修复它:https://jira.mongodb.org/browse/PHP-550
有什么办法可以绕过这种行为吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。