如何在mongodb douments中更新文档数组?蒸气4,MongoKitten

问题描述

我有一个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数组中添加碎片。需要将其添加一个特定的国家/地区,然后将其添加到该国家/地区的一系列区域中。

这些是我尝试过的一些选项。


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]])

有人能指出我正确的方向吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...