【问题标题】:Where is the unexpected token here in this Meteor/MongoDB line of code?Meteor/MongoDB 代码行中的意外标记在哪里?
【发布时间】:2015-12-16 22:43:52
【问题描述】:

我正在尝试以这种方式在我的 Meteor 应用程序中过滤 MongoDB find() 的结果:

Template.tblScheduler.helpers({
  jobLocations: function() {

    // return JobLocations.find();
    return JobLocations.find({jl_jobloc}, {sort: {jl_jobloc: 1}});
  }
});

注释掉的“笛卡尔结果集”代码工作得很好,但在这种情况下我只需要一个字段,并希望它们按字母顺序获取。

不过,应用程序无法编译,抱怨这一行的第 40 行:

return JobLocations.find({jl_jobloc}, {sort: {jl_jobloc: 1}});

(这是该行的第一个“}”)。

怎么了?为什么“}”被认为是“意外令牌”?

【问题讨论】:

  • {} 中大括号内的所有内容都必须是“键/值”对组合,例如 { "a": 1 } 或就像您的 { sort: { jl_jobloc: 1 } }。因此,还有另一种方法可以仅选择字段本身,但 { jl_jobloc } 永远不会成为对象的有效 JavaScript 表示法,因为它不是“对”。

标签: mongodb meteor mongodb-query meteor-helper


【解决方案1】:

查找函数中选择器不正确

根据文档,http://docs.meteor.com/#/full/find

第一个参数是选择器

{} - 选择所有文档

第二个参数是一个对象,包括:

sort: {jl_jobloc: 1} - 按 jl_jobloc 对文档进行排序

fields: {jl_jobloc: 1} - 仅返回 jl_jobloc 字段

为了得到你需要的东西,试试这个:

return JobLocations.find({}, {sort: {jl_jobloc: 1}, fields: {jl_jobloc: 1}});

【讨论】:

    猜你喜欢
    • 2016-01-19
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多