Rob*_*yon 8 javascript parse-platform
表结构:
Collection
name (String)
Image
collection (Pointer<Collection>)
url (String)
position (Number)
Imageclass有collection一个指向Collection该类的指针的列.
position用于Images在a内排序Collection.
让我们假设我有~3000张图片和3个收藏品.
构造一个返回数组的查询的最佳方法是什么,该数组包含至少有一个关联的所有集合,Image并且只显示每个集合的前5个图像,并按position
每个集合的关联图像都需要包含在响应中,并且可能看起来像这样模糊:
results: [{
collection: {
name: 'foo'
},
images: [{
position: 0,
url: 'test.jpg'
},
{
position: 1,
url: 'test.gif'
}]
}, {
...
}]
Run Code Online (Sandbox Code Playgroud)
我现在所能想到的只是进行两个查询,一个是获取所有Collections,另一个是先获得所有Images,然后过滤它们,这看起来相当倒退,再加上Parse仅限于1000个结果集.我需要重新考虑我的桌面结构吗?
根据您的限制,您可以在一次调用中完成此操作。
\n\n如果您有少量Collection对象并且使用相对位置(每个Collection对象都有一个图像,其中position= 1、2 等),则无需过度考虑该问题。这些约束意味着“位置”< 6(或 5,如果 0 是您的第一个索引位置)的项目相对较少。
只需对类进行调用Image,并将其限制为位置小于或等于 5 的对象。使用.include()返回Collection附加到每个Image对象的对象作为返回的一部分。然后以Image您认为合适的任何格式在本地对对象进行排序。
请记住,Parse 将可返回的对象数量限制为 100,您可以将其增加到最多 1000。如果您.include()使用Collectionon every Image,则意味着每个返回Image计数为 2 个对象,因此您最多可以返回 500Image对象。听起来这远远超出了您的预期需求。
Voil\xc3\xa1 - 一次调用,所有对象。
\n\nvar Image = Parse.Object.extend("Image");\nvar query = new Parse.Query(Image);\nquery.lessThan("number", 6); //Assumes a lowest index of 1; switch to 5 if your lowest index number is 0\nquery.include("collection");\nquery.find({\n success: function(results) {\n //Sort the results according to Collection, send to controllers, etc.\n //Each result will have a pulled, valid Collection object ready on its .collection\n },\n error: function(error) {\n alert("Error: " + error.code + " " + error.message);\n }\n});\nRun Code Online (Sandbox Code Playgroud)\n\n更新\n还值得注意的是,无论是对于少量集合还是大规模(1000 个或 10,000 个集合),此方法都优于“嵌套查询”方法
\n| 归档时间: |
|
| 查看次数: |
373 次 |
| 最近记录: |