2015-11-01 60 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阵列。我已将空白标记为空

{ 
    "_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 by query:{_id:ObjectId}然后更新并推送:

db.cardKeeper.findAndModify({query:{_id: ObjectId('5635ddf82f4c220f4f932af2')}, 
    update: {$push:{'cardKeeperApp.appData.cardDecks': deckObject}}, 
    new:true}, function (err, doc) { 
     res.json(doc); 
    });