gpt4 book ai didi

node.js - Mongoose,从模型中删除属性

转载 作者:IT老高 更新时间:2023-10-28 23:20:47 26 4
gpt4 key购买 nike

我正在使用 Node.js 和 Mongoose 来存储一些数据。更新后,我的结构如下:

 { created: Mon, 30 Jan 2012 19:25:57 GMT,
_id: 4f21a6028132fba40f0000b7,
features:
{ imdb_id: 'tt0822975',
released: '2007-03-24',
tvdb_id: 103191,
type: 'series',
names: [ 'DinoSapien' ],
pictures: [],
cast: [],
genres: [ 'Action and Adventure', 'Children' ] },
type: 1 }

我需要删除例如castpictures 字段。但是,我已经应用了一个解决方案来从数据库中删除空数组,但它不起作用:

instance = (an instance from calling findOne on my model)
cast = (an array)
if ( cast && cast.length > 0){
instance.features.cast = cast;
} else {
delete instance.features.cast;
}
console.log(cast); // null
console.log(instance), // cast is not removed!

保存到数据库时是否可以从模型中删除空数组或不需要的值?

最佳答案

您可以使用预保存 Hook 来检查那些空字段,并将它们设置为 undefined,如下所示:

PostSchema.pre('save', function (next) {
if(this.pictures.length == 0){
this.pictures = undefined;
}
if(this.cast.length == 0){
this.cast = undefined;
}

next();
});

我在本地对此进行了测试,它似乎做得很好。

关于node.js - Mongoose,从模型中删除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069601/

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