我正在尝试在 Meteor 中的嵌入式数组上使用 $pop ,我很确定我对变量范围和操作顺序的有限理解导致了我的问题。
为了提供一个简化的示例,这有效:
do_thing = function(foo) {
Coll.update(foo, {$pop: { "bar.baz": 1 }} );
};
do_thing( "123" );
但这不会:
do_thing = function(foo, bar) {
var tmp = bar + ".baz"
Coll.update(foo, {$pop: { tmp: 1 }} );
};
do_thing( "123", "bar" );
核心问题是,当我对希望从中弹出项目的数组进行硬编码时更新成功,但是当动态构造该数组时更新失败。我认为原因不是因为它是一个变量,因为“foo”有效,而是问题在于“tmp”可能没有及时实例化以进行 update() 调用。
任何人都可以建议我如何实现我正在寻找的结果:从一个字段中弹出一个项目,直到我在函数中之前我不一定知道它的名称?
或者,如果我一开始就采取了完全错误的方法,我愿意接受有关如何构建此功能的更广泛建议。