У меня есть данные JSON, которые структурированы в следующей форме:
[
{"size":100,"year":2015,"geography":"London","age":"21","gender":"Female"},
{"size":80,"year":2015,"geography":"Cardiff","age":"38","gender":"Male"},
{"size":80,"year":2013,"geography":"Edinburgh","age":"36","gender":"All"}
]
И я пытаюсь добавить его в коллекцию базы данных со следующей схемой:
const Schema = new Schema({
geography: String,
size: {
2013: {
male: {
age: {
}
}
female: {
age: {
}
}
all: {
age: {
}
}
}
}
});
В настоящее время я пытаюсь настроить свое обновление следующим образом:
query = { geography : geography};
update = { geography : geography, $set: { "year.gender.age" : size}
Schema.updateOne( query, update, { upsert: true };
Установленный здесь $, очевидно, не работает, поскольку обновление не знает, как извлечь значения из данных json. Я попытался сделать переменные года, пола и возраста, а затем рефакторинг набора (см. Ниже), но это также не работает.
$set: { `${year}.${gender{.$age}` }
Итак, вопрос в том, как я могу использовать значения в моих данных JSON, чтобы определить, какое встроенное поле обновить?