我正在使用Lithium PHP Framework - 使用MongoDB数据库 - 为我的应用程序创建一些输入/编辑表单。
我在MongoDB中使用嵌入式文档的概念。我花了一些时间进行调整才能使初始保存工作,但是我已经设置好它以便它正常工作。
当我查看MongoDB时 - 我的对象如下所示:
{
_id: "5119951516c19",
level_name: "Testing",
questions: [
{
question_id: "5119951516cb5",
question_text: "Why is the sky blue"
},
{
question_id: "5119951516cc3",
question_text: "Why is grass green"
}
]
}
现在,如果我想进行一个非常简单的编辑,例如:
$level = Levels::find($id);
$level["level_name"] = "Testing - UPDATE";
$level->save();
好消息是有问题的领域可以保存。但是,坏消息是它破坏了我的整个对象模型。 MongoDB中的新对象模型保存如下:
{
0: {
question_id: "5119951516cb5",
question_text: "Why is the sky blue"
},
1: {
question_id: "5119951516cc3",
question_text: "Why is grass green"
},
_id: "5119951516c19",
level_name: "Testing - UPDATE",
questions: [
{
question_id: "5119951516cb5",
question_text: "Why is the sky blue"
},
{
question_id: "5119951516cc3",
question_text: "Why is grass green"
}
]
}
基本文档保持不变 - 但不知何故嵌入式文档在“0”和“1”键下被抛到顶层。
我搜索过高低,我无法弄清楚为什么会这样。由于我的保存功能非常简单,我假设这是锂电池中的一个错误。这很好 - 只要我有办法解决它。
提前致谢。