mongodb - 从自下而上的方法查询 Ember 和 Firebase 数据?

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

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

是否可以从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/

相关文章:

javascript - 当对象初始化时,如何获取 ember 对象的唯一 id?

javascript - 暴露 mongodb 的 id 和安全性

mongodb - Spring Data - 如何编写 MongoRepository 方法进行 findAndModify 操作?

javascript - 何时关闭 MongoDB 连接

javascript - Emberjs模型渲染

javascript - 将具有不同模型的模板渲染到 Ember.js 中的命名 socket 中

search - 去抖动 ember 搜索输入

regex - 如何在 Mongodb 上进行不区分大小写的查询?

javascript - meteor 错误 : A method named insert is already defined

javascript - 在 Ember.js 中使用需要将对象注入(inject)到其他对象中