I am trying to store a dictionary of objects using Mongoose. Realizing that I lose the change detection for saving with using the Mixed type, I was hoping I could create a schema that would not require the Mixed type.
There are plenty of examples of creating schemas for arrays of objects, but not dictionaries of objects. Is it possible to do this?
Format:
{
ObjectId : {
"attempts" : {
"response" : String,
"timestamp" : Date
},
"complete" : Boolean
}
}
There is no support for dictionary in mongoose
. Field name can't be dynamic in a schema. You should go with a raw object(embedded document) and implement it as a dictionary. But there will be no validation from mongoose
and use markModified before saving whenever you have changed that field
var fooSchema=mongoose.Schema({name:String, dic:{}});
//dic is your dictionary
更新:从 5.1 猫鼬有一个地图类型: https : //mongoosejs.com/docs/schematypes.html#maps
You can have your dictionary like this with meta being a dictionary:
var UserSchema = new Schema({
meta: {
votes: Number,
favs: Number
}
first_name: String,
last_name: String,
profile_pic: String,
gender: String,
timezone: Number
date: { type: Date, default: Date.now },
updated: { type: Date, default: Date.now },
country: {id: Number, name: String}
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.