@Alecxandrys

Как изменить значение записи?

День добрый,
Есть коллекция
battles = new Mongo.Collection('battles');
Заполняется она записями по такому типу
var BS = new BattleState(path, 20, 12,prevuser.deck,user.deck);
                            battles.insert({
                                ID1     : prevuser.userId,
                                name1   : prevuser.username,
                                ID2     : user.userId,
                                name2   : user.username,
                                BS      : BS,
                                battleID: path
                            });

BattleState имеет следующий конструктор
BattleState = function(ID, sizeX, sizeY, deck1, deck2)
    {
        var mapHash = setMapHash(sizeX, sizeY);
        this.map = createMap(mapHash, sizeX, sizeY);//{}
        this.deck1 = deck1;//[]
        this.deck2 = deck2;//[]
    };

Необходимо добасить несколько полей (positionX и positionY) к элементу (предположим с индексом 0) массива deck1 в объекте BS документа.
То есть, если взять одиночную запись, то надо изменить значения в battle.BS.deck1.[0]
Как составить modifier?
  • Вопрос задан
  • 206 просмотров
Решения вопроса 1
@Alecxandrys Автор вопроса
Решил проблему путём редактирования всей deck и перезаписью её целиком
deck=battles.findOne({}).BS.deck1;
                    deck[card].column=column;
                    deck[card].row=row;
                    deck[card].placed=true;
                    battles.update(_id,{$set:{'BS.deck1':deck}});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@soulness
работать с массивами в монго очень легко, достаточно указать индекс.
var deck = {column: column,
                   row: row,
                   placed: true };
battles.update(_id, {$set: { 'BS.deck1.0': deck}});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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