gpt4 book ai didi

ruby-on-rails - Mongoid:数组包含另一个数组的任何值

转载 作者:行者123 更新时间:2023-12-04 15:55:57 28 4
gpt4 key购买 nike

我有一个带有“城市”数组字段的 Map 对象

class Map
include Mongoid::Document
field :cities, type: Array
end

我想从另一个数组中搜索至少存在一个城市的所有 Map。像这样:

# map1.cities = ['London', 'Manchester']
# map2.cities = ['Paris', 'Lyon']
# map3.cities = ['Berlin', 'Munich']
# searchedCities = ['London', 'Paris']

在本例中,我想要至少包含一个搜索城市的所有 map ; map 1 和 map 2。

这是行不通的,因为它比较的是整个数组

Map.where(cities: searchedCities)

有什么想法吗?

最佳答案

您可以使用生成 $in.any_in(无法找到直接文档) mongodb 查询你,如果字段包含给定数组中的任何值,它匹配文档。

在你的情况下:

Map.any_in(cities: searched_cities)
=> #<Mongoid::Criteria
selector: {"cities"=>{"$in"=>["London", "Paris"]}}
...
class: Map>

关于ruby-on-rails - Mongoid:数组包含另一个数组的任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51658302/

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