正在编辑的对象中的mongodb查询字段

时间:2014-12-15 13:29:42

标签: mongodb meteor spacebars

如何查询对象中的字段?我的html检索数组中名为'明信片'

的所有对象
Meteor.user.profile.postcards [
    {
    _id: 84fh83f,
    field_one: "a name",
    field_two: " winter whether",
    field_three: " lost more writing"
    },
    {
    _id: 6jsf58s,
    field_one: "another  name",
    field_two: " topical issues ",
    field_three: " lost more writing"
    }
   ]

注意:我使用了random.Id(),因此可以唯一地标识数组中的每个对象。

当用户专注于输入字段时,将会话值设置为this._id将检索此唯一ID,但是,我想查询焦点中的实际字段。通过使用html中的空格键语法,可以在文本输入区域内投影这些字段中的值。

我可以以某种方式将value属性的花括号中的名称指定给变量吗?然后查询?

有没有全新的方法来实现这一目标?

我想更新此对象中的特定字段,而不是更新整个对象。

HTML:

{{#with currentUser.profile}}
 {{#each postcards}}
   <input id="one" value="{{field_one}}" type="text">
   <input id="two" value="{{field_two}}" type="text">
   <input id="three" value="{{field_three}}" type="text">
 {{/each}}
{{/with}}

client.js

在活动中,我想更新重点关注的字段。

Templates.myTemplate.events({
 'keyup input[type=text]': _.throttle(function(event) {
  Meteor.users.update(this._id, {$set: {**fieldbeingedited**: event.target.value}});
  }, 500);
  });

1 个答案:

答案 0 :(得分:0)

您希望拥有一个名为“Computed property names”的ES6功能。

这是看起来像:

var x = 'hello',
    obj = {
      [x]: 'world'
    };
console.log(obj); // Object {hello: "world"}

您有两种选择: - 你使用流星和谐包来将你的es6转换为es5(https://github.com/mquandalle/meteor-harmony) - 首先构建对象

首先构建对象:

var obj = {};
obj[ this.targetField ] = event.target.value
Meteor.users.update(this._id, {$set: obj});