2015-11-01 3 views
0

Я пытаюсь добавить к существующему массиву в моем mongoDB. Вот что у меня есть, но это, конечно, неверный, потому что все данные получает уничтожены после того, как он пытается добавить:MongoJS добавить к существующему массиву

db.cardKeeper.update(
     {_id: ObjectId('5621c5ac30895e5776e4d1ea')}, 
     { 
      $push:{'cardKeeperApp.appData.cardDecks':deckObject} 
     } 
    ) 

deckObject который является объект, который я пытаюсь добавить в массив выглядит следующим образом

var deckObject = { 
     name: productName, 
     searchName: productItem, 
     price:{ 
      purchasePrice: productCost, 
      averageWorth: priceAverageFixed, 
      lowWorth: lowestSoldAmount, 
      highWorth: highestSoldAmount 
     } 
    } 

и как вы можете видеть cardKeeperApp.appData.cardDecks мой массив, который содержит больше информации, которая выглядит так же, как deckObject

Если это помогает здесь полный объект, я пытаюсь добавить к cardDecks массива. Я отмеченные поля как null

{ 
    "_id" : ObjectId("5635ddf82f4c220f4f932af2"), 
    "cardKeeperApp" : { 
     "appData" : { 
      "cardDecks" : [ 
       { 
        "name" : "Some Name", 
        "searchName" : "Some+Name", 
        "price" : { 
         "purchasePrice" : null, 
         "averageWorth" : null, 
         "lowWorth" : null, 
         "highWorth" : null 
        } 
       } 
      ], 
      "allDeckTotalWorth" : null 
     } 
    } 
} 

ответ

0

Я нашел решение. findAndModify по query:{_id:ObjectId}, а затем обновить и надавить:

db.cardKeeper.findAndModify({query:{_id: ObjectId('5635ddf82f4c220f4f932af2')}, 
    update: {$push:{'cardKeeperApp.appData.cardDecks': deckObject}}, 
    new:true}, function (err, doc) { 
     res.json(doc); 
    }); 
Смежные вопросы