加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Mongoid – 阵列管理?插入唯一值,如果存在则

发布时间:2020-12-17 04:28:37 所属栏目:百科 来源:网络整理
导读:我想做一些相当简单的事情我相信: 1)仅当该值尚未存在时才在数组字段中插入值 2)删除数组中存在的值 我只是不知道如何做这些事情…目前我只是插入我的值而不检查它是否已经存在:myArray obj.id 谢谢,亚历克斯 ps:使用Rails 3.0.3,mongo 1.1.5和mongoid 2.
我想做一些相当简单的事情我相信:

1)仅当该值尚未存在时才在数组字段中插入值

2)删除数组中存在的值

我只是不知道如何做这些事情…目前我只是插入我的值而不检查它是否已经存在:myArray<< obj.id 谢谢,亚历克斯 ps:使用Rails 3.0.3,mongo 1.1.5和mongoid 2.0.0.rc5 ps2:这是实现我想要的mongodb语法,但我不知道如何在mongoid中做到这一点

{ $addToSet : { field : value } }

仅当数组不在数组中时才添加值,如果field是现有数组,否则如果field不存在则将字段设置为数组值.如果字段存在但不是数组,则会引发错误情况.

添加许多valuest.update

{ $addToSet : { a : { $each : [ 3,5,6 ] } } }
$pop

{ $pop : { field : 1  } }

删除数组中的最后一个元素(在1.1中添加)

{ $pop : { field : -1  } }

删除数组中的第一个元素(1.1中的ADDED)|

解决方法

您想要使用add_to_set方法,如此处(在某种程度上): http://mongoid.org/en/mongoid/docs/persistence.html#atomic

例:

model = Model.new
model.add_to_set(:field,value)
model.save

您可以为其提供单个值,甚至是一组值.当将数组的每个元素添加到指定的字段时,后者将使用mongo的$each限定符和$addToSet.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读