使用嵌入式文档编辑模型(Lithium Framework - MongoDB)

时间:2013-02-12 01:48:44

标签: mongodb lithium

我正在使用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”键下被抛到顶层。

我搜索过高低,我无法弄清楚为什么会这样。由于我的保存功能非常简单,我假设这是锂电池中的一个错误。这很好 - 只要我有办法解决它。

提前致谢。

0 个答案:

没有答案