我有一个 MongoDB 集合,其中存储国家,每个国家都有一系列地区,每个地区都有一系列峭壁,每个峭壁都有一系列扇区。以下是代表此设置的结构。
struct Country: Codable, Hashable{
var name: String
var description: String?
var imageUrl: String?
var regions: [Region]
}
struct Region: Codable, Hashable {
var name: String
var descripton: String
var imageUrl: String
var crags: [Crag]?
}
struct Crag: Codable,Hashable {
var name: String
var description: String
var imageUrl: String
var sectors: [Sector]?
}
struct Sector:Codable,Hashable {
var name: String
var description: String
var imageUrl: String
}
我正在使用 Vapor 4 和 mongokitten libray 后端,并且希望能够将项目添加到各种数组中,例如,我想在一个区域的 crags 数组中添加一个 crag。它需要添加到一个特定的国家/地区,然后是该国家/地区阵列中的特定区域。
这些是我尝试过的一些选项。
countryCol.updateOne(where: ["name":country], to: ["$addToSet":["regions.$[region].crags":doc], "arrayFilters":["region.name":region]]
countryCol.updateOne(where: ["name":country, "regions.$" : region], to: ["$addToSet":["crags":doc]])
谁能指出我正确的方向?