用Mongoose创build一个字典模式

我试图存储使用mongoose的对象的字典。 意识到我失去了使用混合types保存的变化检测,我希望能够创build一个不需要混合types的模式。

有很多为对象数组创build模式的例子,但不是对象的字典。 是否有可能做到这一点?

格式:

{ ObjectId : { "attempts" : { "response" : String, "timestamp" : Date }, "complete" : Boolean } } 

mongoose不支持字典。 在架构中,字段名称不能是dynamic的。 您应该使用原始对象(embedded文档)并将其作为字典来实现。 但是,不会有mongoosevalidation,并且在保存之前使用markModified来更改该字段

 var fooSchema=mongoose.Schema({name:String, dic:{}}); //dic is your dictionary 

你可以用meta作为字典来获得你的字典:

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