У меня есть свободно созданная база данных с ключом website
. В этом website
объекте у меня будет несколько объектов, по одному для каждого динамически создаваемого веб-сайта. Примером того, как может выглядеть база данных, будет
website: {
google.com: {
count: 19,
like: {huge: 9, normal: 10},
follow: {big: 11, small: 8}
},
facebook.com: {
count: 1,
like: {huge: 1},
follow: {big: 1}
}
}
Таким образом, веб-сайты изначально являются пустым объектом, и чем больше будет происходить, тем больше случайных веб-сайтов будет добавлено (например, Google, Facebook)
Теперь я хочу, чтобы значения внутри были увеличены на 1, когда я получаю совпадение с этими значениями, например,
User.findByIdAndUpdate({"_id": id}, {
website: {
[query.name]: { $inc : { //query.name is the dynamic name that'll be given
count: 1, //I want this count value incremented by one
like: {
[query.like]: 1 //query.like would be either huge or normal or something that's not available yet, in which case it would be created with a value of 1. If it exists I want the value incremented by one.
},
follow: {
[query.follow]: 1 //query.follow would be either big or small or something that's not available yet, in which case it would be created with a value of 1. If it exists I want the value incremented by one.
}
}}
}
}, function(err, result){
if (err) {
console.log(err);
} else {
console.log(result);
}
});
Но это не работает, я получаю сообщение об ошибке «Ошибка: Поле с префиксом доллара ($) $ in c in на сайте. [Dynami c имя сайта]. $ in c 'недопустимо для хранилища. "
Я попытался поместить $ в c в нескольких других местах, но я получил примерно такое же сообщение.
Есть идеи? (