1

我有一个 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]])

谁能指出我正确的方向?

4

0 回答 0