如何在MongoLab上定义PFRelation,就像它在Parse上的方式一样?

时间:2016-02-22 10:25:57

标签: swift mlab parse-server

我在Heroku上有一个解析服务器,配置了MongoLab作为附加组件。 我现在可以与客户端连接,甚至可以检索PFObjects数组。

我在MongoLab上有2个文档:RecipeIngredient。 我的问题是如何在MongoLab上定义PFRelation(就像在Parse BaaS上一样)。我不想太多地修改客户端代码。

我看到MongoLab可以使用嵌入式文档或文档引用的一对多关系。我试过了两个,但每次我收到这个错误: [Error]: {"code":1,"message":"Internal server error."} (Code: 1, Version: 1.12.0)

以下是对嵌入文档的尝试:

{
    "_id": {
        "$oid": "56c581f3e4b07bf05b29fac6"
    },
   "name": "Banana pancake",
   "steps": [
       "Mix",
       "Cook"
   ],
   "ingredients": [
        {
            "category": "Diary and eggs",
            "name": "eggs",
            "quantity": "3",
            "unit": "pc"
        }
    ]
}

这是我的快捷代码:

 menuRecipes.map {
  $0.ingredients.query().findObjectsInBackground(). .....
 }

1 个答案:

答案 0 :(得分:1)

解析服务器以与parse.com相同的方式处理关系。但是不支持本机mongo关系。您现在必须在数据库中手动设置这些关系,这很容易出错。也就是说,可以这样做:

"ingredients": [{
    "__type": "Pointer",
    "className": "Ingredient",
    "objectId": "tnYLlRXChj",
    "category": "Diary and eggs",
    "name": "eggs",
    "quantity": "3",
    "unit": "pc"
}]

另请确保_SCHEMA集合中Recipe文档的字段ingredients设置为array