【问题标题】:How to search for documents which has a specific attribute inside hash Mongoid 4如何在哈希 Mongoid 4 中搜索具有特定属性的文档
【发布时间】:2016-02-23 11:00:57
【问题描述】:

想象以下模型:

class Model
  ...
  field :things,    type Hash
  ...
end 

然后我希望能够搜索在 things 哈希中具有特定属性的文档,如下所示:

model = Model.where('things.order_id' => 9689689)

model = Model.where('things.order_id' => 9689689).all

但这并没有找到我正在寻找的文件。以下也不行:

model = Model.elem_match(inside: {order_id: 116152})

也不是这个:

model = Model.where(:inside.elem_match => {order_id: 116152})

我在这里错过了什么?

请注意,这不是一个嵌入式文档,而只是一个包含哈希的模型(尽管在嵌入式模型中找到一种方法来进行类似的搜索会很好)。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails-4 hash mongoid


    【解决方案1】:
    model = Model.where(:'things.order_id' => 9689689)
    

    【讨论】:

    • 当我尝试你的建议时,我得到了一个 NoMethodError: undefined method eq' 的 "things.order_id":String`
    • 不幸的是,它没有找到该文档。 PS: 9689689 代表数据库中的实际文档,因此它肯定应该返回至少一个文档。我什么也得不到。
    • 对不起,我应该更清楚一点:我的第二条评论是关于您更新的答案。所以不,恐怕它不适用于您更新的答案。
    • 没有,但它也没有找到任何文档(并且有一个符合条件的文档)
    • 这个答案怎么样?
    猜你喜欢
    • 2012-02-27
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2014-05-03
    • 2012-10-25
    • 2014-06-13
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多