【问题标题】:Pull only one element from and Array in Mongoose仅从 Mongoose 中的 Array 中提取一个元素
【发布时间】:2020-04-02 02:24:21
【问题描述】:

我试图从一个数组中只提取一个元素,它是一个 mongo 文档。

我的数据库如下所示:

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

我只想从这个数组中删除一个元素。

我的数据库应该是这样的:

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

当我使用model.findByIdAndUpdate( id, { $pull: {product: 'foo'} } )

我失去了product的所有价值观

【问题讨论】:

标签: node.js mongodb mongoose


【解决方案1】:

`

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 shell 语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多