Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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持久化对象_Php_Mongodb - Fatal编程技术网

Php 尝试使用MongoDB持久化对象

Php 尝试使用MongoDB持久化对象,php,mongodb,Php,Mongodb,第一件事。我可能完全偏离了轨道。总体而言,我仍在学习Mongo和NOSql解决方案。我们正在编写的应用程序中有一个新组件,我们希望使用更适合对象的组件,而不是坐下来处理关系数据库 我们举一个简单的例子: Class User extends \Model { public $name; public $hobbies; } $name将只是一个字符串。但是让我们假设$嗜好是一个对象或一组对象。我只希望能够将其放入数据存储并在以后检索它 起初,我将对象分解成一个数组,并将其存储在

第一件事。我可能完全偏离了轨道。总体而言,我仍在学习Mongo和NOSql解决方案。我们正在编写的应用程序中有一个新组件,我们希望使用更适合对象的组件,而不是坐下来处理关系数据库

我们举一个简单的例子:

Class User extends \Model {
    public $name;
    public $hobbies;
}
$name将只是一个字符串。但是让我们假设$嗜好是一个对象或一组对象。我只希望能够将其放入数据存储并在以后检索它

起初,我将对象分解成一个数组,并将其存储在Mongo中,然后将其取出并填充一个对象。使用我制作的通用导入导出方法非常简单。当我有一些健壮的对象,而这些对象又有其他对象作为成员变量时,问题就来了。在这一点上,我仍然可以导出到多维数组中并将其很好地存储。但是重新导入到对象中就成了问题

我可以做的另一个选择是将对象序列化()并将其与一些描述性数据一起存储在mongo中

苏好。想法


我这里的部分问题是,我对NOSql产品是新手,不确定它们的全部限制/潜力。难道我只是看错了Mongo,试图让它做一些不该做的事吗?我不喜欢使用第三方模块,而喜欢编写简单轻量级的东西。

我认为序列化是一种方法。然后你可以为每个类使用神奇的方法
\uu sleep
\uu wakeup

虽然我不想使用第三方应用程序,但Doctrine的ODM for Mongo似乎正是我想要的。已经安装好了,到目前为止似乎运行良好


这里的另一个选项是将对象序列化到数组中,而不是仅使用“序列化”。如果我没有弄错的话,实际上可以重写这些子对象中的“serialize”方法,基本上让它们将自己序列化为数组(或者更具体地说是哈希表)


如果教义能帮你做到这一点,那就更好了。但是如果你只是想要这个功能,你可以自己做。

我唯一的问题是为什么还要使用Mongo?如果是序列化的,我无法在嵌入对象中进行任何深度搜索:/