Вытащить только один элемент и массив в Mongoose - PullRequest
0 голосов
/ 01 апреля 2020

Я пытался извлечь только один элемент из массива, который является документом go.

Мой БД выглядит так:

product: ['foo','foo','foo'],
...

Я хочу удалить только один элемент из этого массива.

Мой БД должен выглядеть следующим образом:

product: ['foo','foo'],
...

Когда я использовал model.findByIdAndUpdate( id, { $pull: {product: 'foo'} } )

Я теряю все свои значения из product

1 Ответ

2 голосов
/ 01 апреля 2020

`

doc.findById(productId) 
    .then(async (result) => {
        if (!result) {
            console.log("No Record Found.");
        } else {
            result.index = undefined;
            await result.save();
            console.log('Record Updated Successfully.');
        }
    })
    .catrch(err => {
        console.log('Error: ', err);
    });

`

Вы можете сделать это, чтобы принести документ и затем сделать требуемый элемент неопределенным, а затем вы можете сохранить измененный документ обратно в базу данных.

В противном случае вы можете использовать лучший и оптимизированный подход.

`db.doc.update( { _id: 1 }, { $pop: { products: -1 } } )`

Здесь будет удален первый элемент из массива продуктов.

Примечание : это синтаксис оболочки MongoDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...