#node.js #mongodb #mongoose
#node.js #mongodb #mongoose
Вопрос:
Мне нужно свойство в модели мангуста, которое выглядит следующим образом:
Пользовательские ранки должны иметь разные ключи и разные значения для каждого ключа
const config = new Schema({
id: { type: String, required: true, unique: true },
//...other property
customRanks: Object,
});
Ответ №1:
Вы можете определить custome rank schema
и использовать это как объект, если хотите сохранить данные в определенном формате для полей customRanks
const customRanksSchema = new Schema({
key1: { type: Number, default: 0 },
key2: { type: Number, default: 0 },
key3: { type: String, default: '' }
})
Если вам нужна статическая схема и у вас есть определенные поля для вашего объекта custome rank
// if you want to save customeRanks as array of object
customRanks: [{ type: customRanksSchema }],
// if you want to save custom rank as a object
customRanks: customRanksSchema
Если вы ищете проверку без ключа конкретно. Затем вам может потребоваться проверить данные перед вставкой / созданием / обновлением с помощью javascript.
Комментарии:
1. да, но таким образом я не могу добавить динамический элемент в customRanks
2. Мне нужно свойство объекта, потому что мне нужно добавить определенные элементы, в начале объект пуст
3. самым близким решением могут быть карты mongoosejs.com/docs/schematypes.html#maps
4. @Gianmarco сэр, если вам нужно динамическое поле, то ваша очередь верна
customRanks: { type: Object, default: {} }
, вы можете добавить много полей. без ухода за полями.