用于在属性中保存键值对的模式 - Mongoose

时间:2017-08-10 19:02:48

标签: node.js mongoose

所以,我的Mongoose中有以下架构:

// MODEL
const PortletSchema = new Schema({
    slug: String,
    version: String,
    environment: String,
    scap: Number,
    country: {
        type: String,
        uppercase: true
    },
    _keys: [{ key: String, value: String }]
});

在“_keys”数组中,我想保存一个键值JSON,如下所示:

// EXPECTED WAY TO STORE DATA INSIDE THE _keys PROPERTIES
{
    [
        {"key": "value"},
        {"anotherKey": "Another Value" }
    ]
}

这样,我可以在_keys属性中包含“动态键”,而不是像以下那样定义它:

// HOW I STORE THEM TODAY
[{ key: String, value: String }]

为什么我想要这个?:这将由Java应用程序通过服务读取,并且它希望映射该数组以获取如下的键:${anotherKey}

目前,在将信息发送到Java应用程序之前,我创建了一个库,将密钥更改为第一个提到的方式。所以java应用程序就像第二段代码一样接收它们。

我希望我可以在_keys中存储一个json文件,这样我就会按照我需要的方式发送信息。

非常欢迎任何帮助或建议!

2 个答案:

答案 0 :(得分:1)

您可以使用地图

const schema: Schema = new Schema({
    _keys: {
        type: Map,
        of: Object,
    },
 });

检查这个: https://mongoosejs.com/docs/schematypes.html#maps

答案 1 :(得分:0)

正如@NeilLunn建议的那样,我使用_keys这样的值:

_keys: []

这允许我在里面插入任何类型的对象。