Задать вопрос

Как можно динамически подобрать ключ mongodb?

Есть в базе объект obj = {key1:{}, key2:{}}
Нужно сделать апдейт 1ого из ключей в базе в зависимости от значения записанного в отдельном месте (obj2.key = 'key2';).
Так вот проблема в том, что если пишу :
collection.update({name:user}, {$set:{'obj[obj2.key]':JSON.parse(info)}} не записывает в поле obj.key2 какую то информацию(что логично, строка же),пытался манипулировать этой частью 'obj[obj2.key]' но результатов это не дало. Подскажите как можно динамически подобрать ключ.

P.S.: с монго только начинаю, ответа на вопрос не нашел, либо же мой запрос был неверно составлен:)
Заранее благодарен.
  • Вопрос задан
  • 2569 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
AMar4enko
@AMar4enko
Вы не можете в $set использовать значения текущего документа для вычисления значений или ключей. Вам нужно сначала будет прочитать obj2, вытащить оттуда ключ и уже в $set подставить его значение.
Ответ написан
Комментировать
@Artcl Автор вопроса
Пытался сделать как то так
var a = 'obj['+ obj2.key+ ']' или 'obj.'+obj2.key
$set:{a:что-то}
правда тогда записывает в базу ключ с именем а
Ответ написан
Комментировать
mr_null
@mr_null
obj можно подобрать, так как название какой-то хеш с порядковым номером.
запишите 1 obj и сразу за ним 2 obj. разница в названии будет небольшая.

тут надо читать документацию по какому принципу создается хеш.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы