我的数据模型如下所述。我想写一个会返回的查询:
- 给定部门的评论列表
- 特定类型的培训列表
- 给定大学的评论列表
所以从部门开始,这是我尝试做的:
部门评论查询:
var department = this.store.findRecord('department',params.department_id)
var reviews = this.store.query('review' {'faculty.department':department});
查询具体训练:
var design = this.store.query('training',{'faculty.department':department, filter:{type:'ATC Design Course (DQOC)'}});
查询在给定学院工作的所有教师的评论:
var college = this.get('college');
var cid = college.getProperties("id").id
var reviewQuery = store.query('review',{'faculty.department.college._id':college._id});
var trainingQuery = store.query('training',{'faculty.department.college._id':college._id});
这两个查询都没有给我想要的结果。似乎他们都评估查询以找到给定模型类型的所有结果,例如下面的查询返回所有类型的所有训练模型。
var design = this.store.query('training',{'faculty.department':department, filter:{type:'ATC Design Course (DQOC)'}});
我需要重写查询的帮助,以便它们返回正确的结果。这种情况下的最佳做法是什么,我应该如何实现?
是否可以从reviews->faculty->department->college开始查询model bottom app?
或者,我可以采用自上而下的方法,并使用一些嵌套的 for 循环结构查询所有部门、讲师等,但如果可能的话我想采用其他方式。这个查询会是什么样子?
我将不胜感激任何帮助。
大学:
export default DS.Model.extend({
name: DS.attr('string'),
departments: DS.hasMany('department')
});
部门
export default DS.Model.extend({
name: DS.attr('string'),
faculty:DS.hasMany('faculty'),
college: DS.belongsTo('college')
});
教师:
export default DS.Model.extend({
profile_image:DS.attr('string'),
firstname: DS.attr('string'),
lastname: DS.attr('string'),
salutation: DS.attr('string'),
email: DS.attr('string'),
department: DS.belongsTo('department'),
reviews: DS.hasMany('review'),
training: DS.hasMany('training')
});
评论
export default DS.Model.extend({
faculty: DS.belongsTo('faculty'),
courseName:DS.attr('string'),
internalDate:DS.attr("date"),
externalDate:DS.attr("date"),
funDate:DS.attr("date"),
recertificationDate:DS.attr("date")
});
训练
export default DS.Model.extend({
type: DS.attr('string'),
faculty: DS.belongsTo('faculty'),
date:DS.attr("date")
});
第一次编辑问题 我怎样才能获得给定大学的所有评论? var rquery = store.query('review', {faculty.department.college._id : college._id})
或
var rquery = store.query('review', {faculty.department.college : college})
给我一个语法错误。
SyntaxError: quality-online/components/quality-chart.js: Unexpected token (50:44)
最佳答案
当使用 faculty.department.college._id
时,查询函数开始在您的函数中查找 faculty
对象的定义,并尝试访问 的值>department.college._id
并使用 faculty.department.college._id
返回的值作为参数键。这就是问题所在。因为它似乎没有定义 faculty
对象,而且这也不是传递参数的正确方法。
如果您想将一些参数发送到后端,请将其作为 'college_id'
发送,或者如上面评论中所述作为 'faculty.department.college'
发送。唯一的条件是它应该是一个字符串,并且它在您的服务器端代码中得到了正确处理。
关于mongodb - 从自下而上的方法查询 Ember 和 Firebase 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40598101/