Как удалить вложенный документ (по идентификатору), встроенный в вложенный массив в MongoDB? - PullRequest
0 голосов
/ 09 февраля 2019
ProductCollection: 
{
  _id: { ObjectId('x1')},
  products: [ 
              { listPrice: '1.90', product: {id: 'xxx1'} },
              { listPrice: '3.90', product: {id: 'xxx2'} },
              { listPrice: '5.90', product: {id: 'xxx3'} }
            ]
},
{
  _id: { ObjectId('x2')},
  products: [ 
              { listPrice: '2.90', product: {id: 'xxx4'} },
              { listPrice: '4.90', product: {id: 'xxx5'} },
              { listPrice: '5.90', product: {id: 'xxx6'} }
            ]
},

Я хочу удалить вложенный документ (xxx3) из коллекции (x1) и попробуйте ниже:

ProductCollection.update(
{ 
  "_id": mongoose.Types.ObjectId('x1')  
}, 
{ 
  $pull : { 'products.product': {id: 'xxx3' } } 
} 

Это просто не похоже на работу.Кто-нибудь может мне помочь, пожалуйста!Спасибо

1 Ответ

0 голосов
/ 09 февраля 2019

Поле для $pull должно быть массивом.

Это должно работать:

$pull: { products: { 'product.id': 'xxx3' } }
...