我有一个mongo
对象,并希望通过访问它的mongoose
对我的web应用。 我已经定义的模式具有一个Object
存储的用户ID和一个3电平值(是的,也许或否)。
如
"user_info": {
"<id_value_1>": "y",
"<id_value_2>": "n"
}
该id_value_*
s以上的用户会话ID,这样的随机字符的长字符串。 如何创建一个mongoose
Schema
的呢?
将user_info: {String, String}
工作?
我可以重组它使得user_info
是对象的数组{ "sessionid": "<value>", "value: "y"}
这将是好的,这是最好的选择?
如果您避免在您的架构动态密钥,并用你的第二个想法去你会好起来的:
user_info: [{sessionid: String, value: String}]
您可以使用$
位置运营商更新个别user_info
由数组元素sessionid
。
你可以用混合像这样架构类型尝试
var user = new Schema({
info: [Schema.Types.Mixed]
});
user.info = { any: { thing: 'i want' } };
user.markModified('info');
你可以阅读更多关于它在这里
测试上面后,我发现,定义模式为user_info: { String: String }
是这样做(在问题指定的选项1)有效的方式。
你可以在你的架构中定义对象和数组。 你甚至可以将它们结合起来。 例如,这是对象的数组:
var user = new Schema({
foo: [ {
address: {type: String},
email: {type: String, unique: true}
}],
bar: [ "simple", "array" ]
});