Ruby on rails 如何搜索记录,然后将其删除

Ruby on rails 如何搜索记录,然后将其删除,ruby-on-rails,mongodb,ruby-on-rails-4,Ruby On Rails,Mongodb,Ruby On Rails 4,如何按手机号码搜索ttoken记录,然后删除该记录 User.rb: 字段:ttokens,类型:Hash,:default=>{}#存储为数字上的散列 通常,rails控制台中ttokens的值如下所示: ttokens: {"919839398393"=>{"atoken"=>"f704e803061e594150b09ad8akabfc6105ac85ab", "confirmed"=>true}, "91812798765"=>{"atoken"=>"255

如何按手机号码搜索ttoken记录,然后删除该记录

User.rb:

字段:ttokens,类型:Hash,:default=>{}#存储为数字上的散列

通常,rails控制台中ttokens的值如下所示:

ttokens: {"919839398393"=>{"atoken"=>"f704e803061e594150b09ad8akabfc6105ac85ab", "confirmed"=>true}, "91812798765"=>{"atoken"=>"255cb70926978b93eik67edb52fa23a163587b4b", "confirmed"=>true}}

我需要一个mongodb查询来按手机号码搜索ttoken记录,然后删除该记录。使用的数据库是MongoDB。任何指导或帮助都将不胜感激

嵌入式元素需要使用MongoDB的“点符号”,这意味着“键”必须是字符串类型的符号。也适用于匹配has中的密钥和mongoid中的方法:

User.where('_id'=> userId, 'ttokens.919839398393'=> { '$exists' => true }).unset(
  'ttokens.919839398393'
)
这实际上是MongoDB的操作符,它通过指定的路径从文档中删除“键”


从示例文档中,这将匹配并删除第一个键,只留下另一个。

感谢Blakes的回复。它工作得很好,但是,如果你能建议如何删除这个条目,那就太好了,只在特定用户的数据库中。您当前的查询会在用户的所有数据库中删除9198398393的TToken。我只想在特定用户的数据库中删除它。我有那个特定用户的手机号码,我可以用他的号码搜索他。@user1903022您的问题只显示这个字段。我们如何匹配用户?id值是多少?查询中的额外字段只是一个逗号分隔的列表。看,我加了一个。谢谢你,布莱克斯。你让我开心。它现在工作得非常好:-)。另外,基本上我是一名Android开发人员,刚刚开始学习RubyonRails作为后端,所以,如果您能建议从哪些来源获得更多RoR方面的专业知识,我将非常感谢您。再次感谢你。