Mongodb/Mongoid-{:multi=>;true}是什么意思

Mongodb/Mongoid-{:multi=>;true}是什么意思,mongodb,mongoid,Mongodb,Mongoid,关于这个问题: 我想问: 这里的{:multi=>true}的目的是什么 现在通过mongoidupdate\u all时是否可以将值推入数组?因为问题是在2010年 谢谢。以下州的文件: multi-指示是否应更新所有符合条件的文档,而不是仅更新一个。可用于下面的$运算符 因此,基本上,multi参数是启用链接问题中的update\u all行为的因素 回答您的第二个问题:是的-Mongoid现在内置了此功能。文件参考是。但你可以这样使用它: User.where(:gender =>

关于这个问题:

我想问:

  • 这里的
    {:multi=>true}
    的目的是什么
  • 现在通过mongoid
    update\u all
    时是否可以将值推入数组?因为问题是在2010年
  • 谢谢。

    以下州的文件:

    multi-指示是否应更新所有符合条件的文档,而不是仅更新一个。可用于下面的$运算符

    因此,基本上,
    multi
    参数是启用链接问题中的
    update\u all
    行为的因素

    回答您的第二个问题:是的-Mongoid现在内置了此功能。文件参考是。但你可以这样使用它:

    User.where(:gender => "Male").update_all(:title => "Mr")
    
    更新

    如果要将值推送到数组字段上,仍然需要直接使用MongoDB库,因为Mongoid
    update\u all
    方法只支持
    $set
    数据库更新方法(可以使用该方法更新整个数组,但不能将值推送到数组上)

    您所链接的问题答案中的示例是可行的,我已将其复制到那些偶然发现此问题的人下面(谢谢!):


    一个特殊的用例是Mongodb被切分()。特别是在通过分片mongo集合进行更新时,当我使用除_id之外的标识符时,更新失败。我必须将multi设置为true,然后它更新了各个碎片上的所有文档

    感谢@theTRON,关于问题2:您演示了如何更新普通字段,是否也可以使用它将值推入数组字段?Mongoid文档提到它使用
    $set
    方法-设置字段的值。因此,您必须访问MongoDB库-我已经更新了我的答案以反映这一点。谢谢,这意味着仍在使用这种方式。:)
    User.collection.update( 
      {'$in' => {:gender => 'Male'}}, 
      {'$push' => {:titles => 'Mr'}},
      {:multi => true}
    )