virtuals mongoose keystonejs

virtuals - mongoose schema



Tipos de esquema Mongoose en modelos KeystoneJS (2)

var keystone = require(''keystone''), Types = keystone.Field.Types; var LeaderboardEntry = new keystone.List(''leaderboardEntry'', { autokey: { path: ''slug'', from: ''publicKey playername'', unique: false } }); LeaderboardEntry.add({ publicKey: { type: String, required: true, noedit: true }, playername: { type: String, required: true }, playerid: { type: String }, points: { type: Number, required: true }, /*data: { type: Mixed, required: false, unique: false },*/ publishedDate: { type: Types.Date } });

Los data campo deben ser del tipo Mixto, pero desafortunadamente no hay un tipo KeystoneJS coincidente.

Alguna idea de cómo se puede hacer esto dentro de un objeto Keystone.List?


Hace un tiempo me encontré con el mismo problema y encontré esta publicación en Twitter . No aparecerá en la interfaz de usuario del administrador, pero es posible agregar un tipo de campo Mongoose de esta manera.

Agregue esto después de su código anterior:

LeaderboardEntry.schema.add({ data: mongoose.Schema.Types.Mixed });


Puede definir así en su archivo de modelo

var keystone = require(''keystone''); var mongoose = require(''mongoose''); // "npm i --save mongoose" of course var Types = keystone.Field.Types; var FBEntry = new keystone.List(''FBEntry''); FBEntry.add({ type: { type: String, index: true }, // data: mongoose.Schema.Types.Mixed <--- define overhere will throw exception }); FBEntry.schema.add({ data: mongoose.Schema.Types.Mixed }); // you should define outside .add() FBEntry.defaultColumns = ''type, data''; FBEntry.register();