当前位置: 首页 > 面试题库 >

在mongodb更新中使用变量

阴高寒
2023-03-14
问题内容

我正在尝试使用Meteor进行如下更新:

Items.update(Session.get('selectedItem'), {'$set': {'directions.0.name': area.value}})

但是我在努力如何动态设置方向的数组索引,就像这样:

var index = //a value determined dynamically
Items.update(Session.get('selectedItem'), {'$set': {'directions[index]name': area.value}})

这不起作用,因为[index]被包装在字符串中。我还尝试形成一个自定义字符串,如下所示:

var string = 'directions.'+itemIndex+'.name'
Items.update(Session.get('selectedItem'), {'$set': {string: area.value}})

但这是行不通的。关于如何执行此操作的任何想法?


问题答案:

您需要以$set编程方式构建对象:

var setModifier = { $set: {} };
setModifier.$set['directions.' + index + '.name'] = area.value;
Items.update(Session.get('selectedItem'), setModifier);

更新资料

如果您的JavaScript环境支持计算出的属性名称(例如,node.js
4+),则可以一步完成:

Items.update(Session.get('selectedItem'), { $set: {
    ['directions.' + index + '.name']: area.value
}});


 类似资料:
  • 本文向大家介绍使用findOneAndUpdate()在MongoDB中更新?,包括了使用findOneAndUpdate()在MongoDB中更新?的使用技巧和注意事项,需要的朋友参考一下 将用于更新基于过滤和排序条件,即一个单一的文件- 让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是要使用更新的查询。在这里,我们增加特定文档的字段Marks-

  • 本文向大家介绍在更新MongoDB文档时如何使用自定义变量,包括了在更新MongoDB文档时如何使用自定义变量的使用技巧和注意事项,需要的朋友参考一下 要更新,请使用update(),以下是创建和使用示例自定义变量的语法- 让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是在更新MongoDB文档时使用自定义变量的查询- 在find()方法

  • 问题内容: 我有这个文件: 如果我运行以下更新: 我得到了不好的结果: 这是错误的,因为 “ something”:“ test” 应该在第二个元素中,映射等于2。 如果我将字段 “名称” 更改为 “ a” 并运行相同的更新,则得到正确的结果: 现在您可以看到 “ something”:“ test” 在正确的位置(第二个事件)。这是因为我在Mongo中使用了 “名称” 而 “名称” 是某种保留关

  • 我想在这里完成的事情很简单。我正在尝试更新MongoDB集合中的单个文档。当我使用任何字段(如“name”)查找文档时,更新查询成功。以下是查询: 如果我试图用ObjectId查找文档,它永远不会工作,因为它与任何文档都不匹配。 是否有可能使此查询与对象ID一起工作? 我同意我的问题有点类似于如何使用Java mongodb驱动程序中的“_id”字段查询文档?但是,我在尝试更新文档时没有收到任何错

  • 问题内容: 我试图: 根据搜索条件查找文档, 如果找到,请更新一些属性 如果没有插入带有某些属性的文档。 我正在使用,因为我也在执行单个插入操作。我想在一次操作中完成所有操作。 但是,它什么都不会导致为更新/向上插入操作插入任何内容。 这是插入文档: 这是最新资料: 这就是我试图更新/更新的方式: 为什么不更新/更新呢? 注意 那是使用水线ORM的JS代码,它也使用mongodb本机驱动程序。 问

  • 问题内容: 我正在尝试更新嵌套数组中的值,但无法使其正常工作。 我的对象是这样的 我需要将值推送到“ answeredBy”数组。 在下面的示例中,我尝试将“成功”字符串推到“ 123 _id”对象的“ answeredBy”数组中,但是它不起作用。 我找到了此链接,但其答案仅表示我应该使用类似结构的对象而不是数组。这不适用于我的情况。我真的需要将我的对象嵌套在数组中 如果您能在这里帮助我,那就太