我有一个简单的要求,即在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);
任何人都可以指出,这是我失踪的原因。 这是我的输出,显示空白值。
提前致谢。
答案 0 :(得分:1)
我不认为有可能真的有一个动态密钥,因为它会破坏模式的目的,但你可以这样做:
var KeyValueSchema = new Schema({
key : String,
value : String
});
module.exports = mongoose.model('KeyValueCollection', KeyValueSchema);
或者使用Mixed数据类型,您可以存储整个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.'});
});
});