У меня есть схема:
const LinkSchema = new mongoose.Schema({
name: { type: String },
style: { default: "icon", type: String },
});
И документ уже в mongoDB с потенциально большим количеством старых полей.
{
"name": "abcLink",
"oldThing1": true,
"oldThing2": "oeunth",
....
"oldThing100": "hi",
}
Я хочу, чтобы link.findOne({ name: "abcLink" })
вернул
{
"name": "abcLink",
"style": "icon"
}
В настоящее время я получаю
{
"name": "abcLink",
"oldThing": true,
"style": "icon"
}
Как получить strict
чтения для возврата отфильтрованного объекта, где не возвращаются поля, не определенные в схеме?
Потому что у нас более 30 активных полей и много неактивных полей, важно, чтобы мы могли определить схему один раз, а затем автоматически отфильтровать результаты. Мы не хотим дублировать действительные или недействительные поля в нескольких местах. Примечание. Использование функции типа Object.keys
в схеме для получения массива допустимых полей и ее использование для фильтрации вполне допустимо.