2016-03-01 54 views
1

我有一個簡單的要求來獲取動態密鑰及其值插入到mongo中。Mongoose中的動態模式密鑰

是這樣的:

[ 
    {"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); 

任何人都可以指出,是我失蹤了。 這是我的輸出,顯示空白值。

在此先感謝。

enter image description here

回答

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.'}); 
    }); 
});