объект как свойство mongoose mongodb

#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: {} } , вы можете добавить много полей. без ухода за полями.