【问题标题】:check if bson array include string id检查 bson 数组是否包含字符串 id
【发布时间】:2018-10-12 23:25:06
【问题描述】:

我想知道一个 bson 数组是否包含字符串 id,如下所示:

[186] pry(main)> changed = [BSON::ObjectId('5ae9972ea8abbc3c5484cd5e')] 
=> [BSON::ObjectId('5ae9972ea8abbc3c5484cd5e')]
[187] pry(main)> changed
=> [BSON::ObjectId('5ae9972ea8abbc3c5484cd5e')]
[188] pry(main)> manager_to_remove = "5ae9972ea8abbc3c5484cd5e"
=> "5ae9972ea8abbc3c5484cd5e"
[189] pry(main)> manager_to_remove
=> "5ae9972ea8abbc3c5484cd5e"
[190] pry(main)> changed.include?(manager_to_remove).inspect
=> "false"

我总是说假话。

谢谢!

【问题讨论】:

  • 尝试转成字符串?
  • 谢谢,结果是这样,但不是同一个字符串:[208] pry(main)> changed.to_s => "[BSON::ObjectId('5ae9972ea8abbc3c5484cd5e')]" 我想删除 BSON...etc 或另一侧,像这样在 BSON 中转换字符串!

标签: ruby-on-rails ruby ruby-on-rails-3 mongoid


【解决方案1】:

manager_to_remove 转换为BSON::ObjectId 有效:

require 'bson'
changed = [BSON::ObjectId('5ae9972ea8abbc3c5484cd5e')]
manager_to_remove = BSON::ObjectId("5ae9972ea8abbc3c5484cd5e")
changed.include?(manager_to_remove).inspect # => "true"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-30
    • 2021-12-14
    • 1970-01-01
    • 2021-06-10
    • 2013-11-20
    • 2013-11-24
    • 2013-08-16
    相关资源
    最近更新 更多