gpt4 book ai didi

node.js - 丢失的 Mongoose Schema 属性仍在返回中

转载 作者:可可西里 更新时间:2023-11-01 10:52:01 25 4
gpt4 key购买 nike

给定一个看起来像这样的模式:

var schema = new mongoose.Schema({ name: 'string', size: 'string' });

并且数据库包含集合中所有对象的“名称”。但后来我更改了它并删除了名称

var schema = new mongoose.Schema({ size: 'string' });

然后我对其进行查找:

schema.find({}).exec().then( (objs) => {
// objs[0].name still exists

我认为如果架构没有指定属性,那么它就不会存在于找到的对象上。不是这样吗?删除属性的唯一方法是从 mongo 中的对象中实际删除它吗?

最佳答案

引用自原始维护者,Aaron Heckmann :

[M]ongoose "plays nice" with existing data in the db, not deleting it unless you tell it to.

[D]eleting the property would work if mongoose was able to hook into that even but alas it cannot. [H]owever you can completely remove the property from your document by setting the values to undefined which will trigger an $unset.

来源:Google Groups

基本上,Mongoose 试图不破坏现有数据。如果不再需要某个属性,您可以在数据库上运行更新以取消设置值,这将从集合中的每个文档中删除该属性。

关于node.js - 丢失的 Mongoose Schema 属性仍在返回中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38926247/

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