2014-10-26 2 views
1

В частности, у меня есть коллекция под названием «Идеи». идея может выглядеть следующим образом:Как обновить внутренний словарь с переменным именем в mongo/meteor?

{ 
    _id:"453uit8ig9", 
    body:"my idea description", 
     relations: { 
      "9fg8oew74gt9ebh":{weight:1, unconfirmed:true}, 
      "754787hsdfh":{weight:1, unconfirmed:true}, 
      "ghtruuy6767":{weight:1, unconfirmed:true}, 
      "479898ioujhh":{weight:1, unconfirmed:true}, 
     } 
} 

Атрибут «отношения» представляет собой словарь с идентификаторами связанных идей как ключи, и другой словарь, выражающий характер отношений как значения.

Если у меня есть идентификатор идеи и идентификатор одной из идей, к которой она относится, как я могу сделать запрос обновления mongo, который будет мутировать атрибут «неподтвержденный» (т. Е. Установить его в false)?

ответ

0

Если переписать relations как массив {relation, weight, unconfirmed}, то вы будете иметь возможность использовать positional $ operator:

Ideas.update({ 
    _id: X, 
    "relations.relation": Y 
}, { 
    $set: { 
    "relations.$.unconfirmed": false 
    } 
}); 
Смежные вопросы