当我实现它时,我认为这会很简单,但是在大量搜索、谷歌搜索和扫描文档之后,我似乎找不到答案。
我有一个哈希字段,其中键是 id,值是其他 id 的数组。例如:
{"52ab84929938c7f966d4f116"=>["52ab84919938c7f966d4ee7d"],
"52ab84929938c7f966d4f117"=>["52ab84919938c7f966d4ee7d"],
"52ab84929938c7f966d4f0cc"=>["52ab84919938c7f966d4ee7d", "52ab84929938c7f966d4f13d"],
"52ab84929938c7f966d4f147"=>["52ab84919938c7f966d4ee7d"]}
这可能更适合图形类型的数据库,但我不熟悉该技术并且已经围绕 Mongoid 构建了我的应用程序的其余部分。对于另一个复杂的问题,这是我能想到的最简单的解决方案。
所以我的问题是如何搜索以 id:52ab84929938c7f966d4f0cc
作为哈希字段中的键的记录?
我尝试像这样使用数组样式,但返回的结果为零:
Course.all_in(:skills_available => sk.id)
我知道这行不通,但如果行得通就好了:
Course.where(:skills_available.key => sk.id)
最佳答案
Course.where(:'skills_available.52ab84929938c7f966d4f0cc'.ne => nil)
- 唯一的限制是它会跳过:
{'52ab84929938c7f966d4f0cc' => nil}
关于ruby-on-rails - 按键搜索 Mongoid 哈希字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621124/