gpt4 book ai didi

javascript - 如何使用 Mongoose 从集合中的所有文档中删除字段?

转载 作者:行者123 更新时间:2023-12-05 01:09:15 24 4
gpt4 key购买 nike

我有一个存储在 MongoDB 数据库中的文档集合,如下所示:

[
{
_id: 5fe72e02b237503088b8889b,
code: '000001403',
name: 'John',
date: 2018-12-01T21:00:00.000Z,
__v: 1
},
{
_id: 5fe72e02b237503088b8889c,
code: '000001404',
name: 'Michael',
date: 2018-12-01T21:00:00.000Z,
__v: 1
}
]

我需要从集合中的所有文档中删除“code”字段并保留文档,即我需要以下结果:

[
{
_id: 5fe72e02b237503088b8889b,
name: 'John',
date: 2018-12-01T21:00:00.000Z,
__v: 1
},
{
_id: 5fe72e02b237503088b8889c,
name: 'Michael',
date: 2018-12-01T21:00:00.000Z,
__v: 1
}
]

我还从模型中删除了该字段:

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

const ItemSchema = new Schema({
// code: String,
name: String,
date: {
type: Date,
default: Date.now
},
});

module.exports = mongoose.model('Item', ItemSchema);

不知道这种情况下是否可以使用aggregation$unset方法,还是有其他方法?

谢谢。

最佳答案

你可以像这样达到想要的结果:

首先您必须将“代码”字段添加回您的架构,然后运行以下代码。

之后,您可以再次从架构中删除代码字段。

const res = await Item.updateMany({}, {$unset: {"code": 1}});

res.n; // Number of documents matched
res.nModified; // Number of documents modified

Item.updateMany({}, {$unset: {"code": 1}}).then(res => {
console.log(res.n); // Number of documents matched
console.log(res.nModified); // // Number of documents modified
}).catch(err => console.log(err));

关于javascript - 如何使用 Mongoose 从集合中的所有文档中删除字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65457791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com