【问题标题】:Dynamic schema keys in MongooseMongoose 中的动态模式键
【发布时间】:2016-06-14 11:18:31
【问题描述】:

我有一个简单的要求,即获取动态键及其值以插入到 mongo 中。

类似这样的:

[
  {"key1": "val1"},
  {"key2": "val2"}
]

为此,我创建了架构: 当我读到[Schema.Types.Mixed] 时,它只会使分配值的数据类型动态化,而不是我的关键。

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var myschema = new Schema({ key: [Schema.Types.Mixed] });

module.exports = mongoose.model('DataCollection', myschema);

任何人都可以指出,我错过了什么。 这是我的输出,显示空白值。

提前致谢。

【问题讨论】:

    标签: node.js mongodb model mongoose schema


    【解决方案1】:

    我认为实际上不可能有一个动态键,因为这违背了架构的目的,但你可以这样做:

    var KeyValueSchema = new Schema({
        key : String,
        value : String
    });
    
    module.exports = mongoose.model('KeyValueCollection', KeyValueSchema); 
    

    或者使用混合数据类型,您可以存储整个 JSON 对象。例如使用此架构:

    var mySchema = new Schema({
         data : Schema.Types.Mixed
    });
    
    module.exports = mongoose.model('DataCollection', mySchema);
    

    你可以像这样插入:

    .post(function(req, res) {
        var collection = new DataCollection();
        collection.data = {'key' : 'value'};
        collection.save(function(err) {
            if(err) res.send(err);
            res.json({message:'Data saved to collection.'});
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-02
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2014-04-14
      • 2015-12-08
      • 2020-07-25
      相关资源
      最近更新 更多