猫鼬为未知键定义模式

Posted

技术标签:

【中文标题】猫鼬为未知键定义模式【英文标题】:mongoose define schema for unknown keys 【发布时间】:2020-05-18 23:22:02 【问题描述】:

我的 MongoDB 存储具有以下结构的文档:


    "application_detail":,
    "curl_detail":
        "Curl1":
            "key1":"value1",
            "key2":"value2"
        ,
        "Curl2":
            "key1":"value1",
            "key2":"value2"        
        ,
        "Curl3":
            "key1":"value1",
            "key2":"value2"
        ,
        "Curl4":
            "key1":"value1",
            "key2":"value2"
        ,
        /*total number of curls are unknown*/
    

现在我正在使用 mongoose 为 curl_detail 中存在的每个 Curl 获取 key1 的值。

如何为此类文档定义架构?

【问题讨论】:

【参考方案1】:

你可以使用Map schema type:

const schema = new mongoose.Schema(
  curl_detail: 
    type: mongoose.Schema.Types.Map,
    of: 
      key1: String,
      key2: String
    
  
)

【讨论】:

感谢您的回复。它就像一个魅力!但是现在我被困在如何在查找查询中使用它?我目前正在使用这个。 mongoApplicationDetails.find(, 'curl_detail.Curl1.key1 curl_detail.Curl1.key2',function(err,data));如何静态应用地图代替Curl1

以上是关于猫鼬为未知键定义模式的主要内容,如果未能解决你的问题,请参考以下文章

如何使用猫鼬为数组元素添加值?

如何使用猫鼬为用户分配用户角色

猫鼬 |如何从此猫鼬模式中删除重复错误[重复]

如何定义适用于猫鼬和graphql的模式

如何使用打字稿定义猫鼬模式参考字段?

如何定义猫鼬模式中对象数组的最小长度?