【问题标题】:MongoDB shell Update within forEachforEach 中的 MongoDB shell 更新
【发布时间】:2016-10-22 21:15:12
【问题描述】:

我正在尝试使用项目列表更新特定菜单。光标有这个列表,我已经测试过它以确保。我正在尝试遍历光标中的每个项目并将该项目的 id 推送到菜单的项目列表中。下面的代码完成没有错误,但实际上并没有改变菜单的项目字段。任何帮助深表感谢。谢谢!

cursor.forEach(function(item){
    db.menus.update(
        {_id: 5806639da77d6e0f00ac902c}, 
        {$push: {"items": item._id}}, 
        {upsert: true}
    );  
});

【问题讨论】:

    标签: mongodb collections foreach cursor


    【解决方案1】:

    我认为这是因为您正在更新传递 5806639da77d6e0f00ac902c 的元素,但请注意这不是有效参数,因为它不是字符串,也不是 ObjectId。

    如果您的数据库中有 _ids 作为 objectIds,请先尝试转换它:

    db.menus.update(
        {_id: ObjectId("5806639da77d6e0f00ac902c")}, 
        {$push: {"items": item._id}}, 
        {upsert: true}
    ); 
    

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 2021-05-31
      • 2017-03-14
      相关资源
      最近更新 更多