Php 尝试使用MongoDB持久化对象
第一件事。我可能完全偏离了轨道。总体而言,我仍在学习Mongo和NOSql解决方案。我们正在编写的应用程序中有一个新组件,我们希望使用更适合对象的组件,而不是坐下来处理关系数据库 我们举一个简单的例子:Php 尝试使用MongoDB持久化对象,php,mongodb,Php,Mongodb,第一件事。我可能完全偏离了轨道。总体而言,我仍在学习Mongo和NOSql解决方案。我们正在编写的应用程序中有一个新组件,我们希望使用更适合对象的组件,而不是坐下来处理关系数据库 我们举一个简单的例子: Class User extends \Model { public $name; public $hobbies; } $name将只是一个字符串。但是让我们假设$嗜好是一个对象或一组对象。我只希望能够将其放入数据存储并在以后检索它 起初,我将对象分解成一个数组,并将其存储在
Class User extends \Model {
public $name;
public $hobbies;
}
$name将只是一个字符串。但是让我们假设$嗜好是一个对象或一组对象。我只希望能够将其放入数据存储并在以后检索它
起初,我将对象分解成一个数组,并将其存储在Mongo中,然后将其取出并填充一个对象。使用我制作的通用导入导出方法非常简单。当我有一些健壮的对象,而这些对象又有其他对象作为成员变量时,问题就来了。在这一点上,我仍然可以导出到多维数组中并将其很好地存储。但是重新导入到对象中就成了问题
我可以做的另一个选择是将对象序列化()并将其与一些描述性数据一起存储在mongo中
苏好。想法
我这里的部分问题是,我对NOSql产品是新手,不确定它们的全部限制/潜力。难道我只是看错了Mongo,试图让它做一些不该做的事吗?我不喜欢使用第三方模块,而喜欢编写简单轻量级的东西。我认为序列化是一种方法。然后你可以为每个类使用神奇的方法
\uu sleep
和\uu wakeup
。虽然我不想使用第三方应用程序,但Doctrine的ODM for Mongo似乎正是我想要的。已经安装好了,到目前为止似乎运行良好
这里的另一个选项是将对象序列化到数组中,而不是仅使用“序列化”。如果我没有弄错的话,实际上可以重写这些子对象中的“serialize”方法,基本上让它们将自己序列化为数组(或者更具体地说是哈希表)
如果教义能帮你做到这一点,那就更好了。但是如果你只是想要这个功能,你可以自己做。我唯一的问题是为什么还要使用Mongo?如果是序列化的,我无法在嵌入对象中进行任何深度搜索:/