灰烬&自下而上方法的Firebase数据查询?

时间:2016-11-14 21:27:13

标签: mongodb ember.js

我的数据模型如下所述。我想写一个会返回的查询:

  • 特定部门的评论列表
  • 特定培训类型列表
  • 特定大学的评论列表

所以从部门开始,这是我尝试做的事情:

查询部门的评论:

  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)'}});

我需要帮助重写查询,以便返回正确的结果。在这种情况下,最佳做法是什么,我该如何实施?

是否可以从评论开始查询模型底部应用程序 - > faculty-> department-> college?

或者我可以采用自上而下的方法,并使用一些嵌套的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:意外   令牌(50:44)

1 个答案:

答案 0 :(得分:0)

使用faculty.department.college._id时,查询函数开始在函数中查找faculty对象的定义,并尝试从中访问department.college._id的值并使用{返回的值} {1}}作为参数键。这就是问题所在。因为似乎faculty.department.college._id对象没有被定义,因为这不是传递参数的正确方法。

如果您想向后端发送一些参数,请将其发送为faculty或上述评论中提到的'college_id'。唯一的条件是它应该是一个字符串,并在服务器端代码处理正确。