gpt4 book ai didi

ruby-on-rails-3 - Mongomapper 查询哈希键

转载 作者:行者123 更新时间:2023-12-04 07:05:27 25 4
gpt4 key购买 nike

我有一个一天的模型,每一天都包含一个标签哈希。

class Day
include MongoMapper::Document

key :tags, Hash
...
end

标签散列可能看起来像这样 {"a"=>4, "b"=>1, "c"=>1}

我想编写一个查询来查找标签键等于“a”的所有日期。

Day.where('tags.keys' => "a")

这是行不通的,因为 keys 实际上不是散列中的键,我猜我不能只使用 keys 方法。

我真的很想知道是否有查询散列键的方法,否则我将不得不创建一个数组来存储键并查询它。

tags = {"a"=>4, "b"=>1, "c"=>1, "names" => ["a", "b", "c"]}

Day.where('tags.names' => "a") #This would work find, but is not what I want

最佳答案

我找到了解决办法。

Day.where('tags.a' => {'$exists' => true})

这将返回带有“a”键的所有日期。

事实上我可以像这样为 Day 写一个方法

def self.find_all_by_tag(tag)
Day.where("tags.#{tag}" => {'$exists' => true}).all
end

然后像这样通过某个标签很容易得到所有的日子:

Day.find_all_by_tag("a")

关于ruby-on-rails-3 - Mongomapper 查询哈希键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7085994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com