如何搜索记录然后将其删除
如何通过手机号搜索ttoken记录。 然后删除该记录?
User.rb:
field :ttokens, type: Hash, :default => {} # Stored as hash over numbers
通常,rails控制台中的ttokens值如下:
ttokens: {"919839398393"=>{"atoken"=>"f704e803061e594150b09ad8akabfc6105ac85ab", "confirmed"=>true}, "91812798765"=>{"atoken"=>"255cb70926978b93eik67edb52fa23a163587b4b", "confirmed"=>true}}
我需要一个mongodb查询来搜索手机号码的ttoken记录,然后删除该记录。 使用的数据库是MongoDB。 任何指导或帮助将受到高度赞赏。
您需要对嵌入元素使用MongoDB’dot notation’,这意味着“key”必须是字符串类型的表示法。 同时应用$exists
来匹配has中的键所在的位置和来自mongoid的.unset()
方法:
User.where('_id'=> userId, 'ttokens.919839398393'=> { '$exists' => true }).unset( 'ttokens.919839398393' )
这实际上是MongoDB的$unset
运算符,它通过指定的路径从文档中删除“键”。
从示例文档中,这将匹配并删除第一个键,只留下另一个。
- Mongo :: Error :: OperationFailure:E11000重复键错误集合:metalab_development.demands index:sn_1 dup key:{:null}(11000)
- 将MongoDB中的_id类型更改为整数是不是很糟糕?
- 使用mongodb作为数据库的rails中的关联
- Rails g为mongoid命令失败
- Regexp用于字符串的特定匹配
- 具有Mongoid和Rails的字段别名
- 在rails app中使用mongoid的Mongo查询导致游标超时错误
- 将rails mongodb应用程序部署到heroku时“预编译资产失败”
- mongodb读/写性能和mongo托管在云端