从Parse中的第二级指针获取数据
Get data from 2nd level pointer in Parse
我设置了三个相关类:_User、Article和Profile。在Article
中,我有一个名为author
的指针用于_User
,在Profile
中,我也有相同的指针;指向_User
的指针,但命名为user
。
现在,我想从Article
中检索数据,Profile
中的cols firstname
和lastname
,其中Article
中的指针与_User
中的objectId
匹配,以及Profile
中的指针。
基本上是我在SQL中解决的内部连接。
我如何用一个解析调用来处理这个?
这是我目前为止写的:
var Article = Parse.Object.extend("Article");
var query = new Parse.Query(Article);
query.include("category");
query.find({
success: function(results) {
console.log("Successfully retrieved " + results.length + " article(s):");
// Do something with the returned Parse.Object values
for (var i = 0; i < results.length; i++) {
var object = results[i];
console.log(object.get('title'));
console.log(object.get('content'));
console.log(object.get('category').get("categoryName"));
}
},
error: function(error) {
console.log("Error: " + error.code + " " + error.message);
}
});
在OP不厌大烦地对数据和期望结果进行完整(最小)描述的情况下,回答这些问题是很愉快的。
我想我理解你想要获取文章,而对于每一个你想要获取概要文件,并且概要文件和文章(逻辑上)通过一个指向User的公共指针连接在一起。
这可以通过每篇文章附加一个查询来完成。为了清晰和可维护性,我喜欢把这些东西分解成简短的、逻辑的承诺返回函数,所以…
// for handy array functions, like _.map, and turning var args into simple arrays
var _ = require('underscore');
// note: include underscore this way in cloud code (nodejs)
// for browser, see underscorejs.org to add to your project
// this will answer a promise that is fulfilled with an array of the form:
// [ { article:article_object, profile:profile_object }, {...}, ...]
function articlesWithProfiles() {
var query = new Parse.Query("Article");
query.include("category");
query.include("author");
return query.find().then(function(articles) {
var promises = _.map(articles, function(article) {
return profileForArticle(article);
});
return Parse.Promise.when(promises);
});
}
// return a promise that's fulfilled by associating the given article with it's profile
function profileForArticle(article) {
var author = article.get("author");
var query = new Parse.Query("Profile");
query.equalTo("user", author);
return query.first().then(function(profile) {
return { article:article, profile:profile };
});
}
// call it like this
articlesWithProfiles().then(function() {
// see edit below
var result = _.toArray(arguments);
console.log(JSON.stringify(result));
}, function(error) {
// handle error
console.log(JSON.stringify(error));
});
相关文章:
- parse.com类中指针中的查询指针
- 在slitify中制作二级项目符号的动画
- 'mousemove'画布中的事件侦听器-指针仅在最后一个矩形中更改
- d3用时钟中的两个指针变换原点
- 将Scope变量作为指针发送,并在控制器外部对其进行更改
- 将指针事件限制为SVG文本填充
- 如何通过“;函数指针“/事件转换为Polymer/HTML中的子元素
- javascript中的鼠标指针实时
- HERE 映射 javascript API - 抛出“指针必须有 ID”错误
- Javascript:将函数指针放在对象中
- 使用指针为ios应用程序&Javascript网站
- 如何通过$.getJSON访问二级JSON对象
- nodejs:请求jsmultipart二级文件和JSON.stringify
- 禁用指针事件后,1个最后的mouseout触发
- 用modernizr测试ie中的指针事件
- 鼠标指针和鼠标左键闪烁
- 在CSS中将图标设置为光标指针
- 仪表D3.js在指针顶部显示值
- 让指针函数接收来自.get()闭包的args
- 使用javascript创建动态二级下拉列表