2017-05-25 41 views
0

我想是這樣的:如何把對象的數組更新貓鼬

查詢:

query = { 
     pictures: {$pushAll: files} 
} 

文件數組是這樣的:

[{ fieldname: 'productPhotos', 
     originalname: 'images.jpg', 
     encoding: '7bit', 
     mimetype: 'image/jpeg', 
     filename: '422e64cfb147eff02fee5166d63939b10564d4ad-images.jpg', 
     }] 

更新貓鼬模型:

Product.update({ _id: product.productId}, query,... 

Mo del看起來像這樣的照片:

pictures: [{ 
     filename: { 
      type: String, 
      required: false 
     } 
    }], 

問題是數組中的數組沒有更新...任何解決方案?

回答

1

錯誤的方法,你應該使用$push$each。即

Product.update(
{ "_id": product.productId }, 
{ "$push": { "pictures": { "$each": files } } }, 
function(err,callback) { 

} 
) 

所以更新操作(即$push)是在更新語句,後跟領域(S)適用於根。 $each是一個修飾符,如果內容添加爲「單數」,則接受「列表」

+0

謝謝,我該如何拉單個元素?嘗試像這樣'{$ pull:{pictures:{filename:'product.png'}}}'但不工作... – Vladimir

+0

@Vladimir這是一個不同的問題。如果你必須,那麼[問一個新問題](https://stackoverflow.com/questions/ask)。這種方式更清晰,以及該網站的工作方式。一個明確的問題分離。 –