遗失的Mongoose Schema财产仍在归还

时间:2016-08-12 20:48:47

标签: node.js mongodb mongoose

给定一个如下所示的模式:

{ path: 'dashboard-settings', component: DashboardSettingsComponent }

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

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

然后我找到了它:

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

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

1 个答案:

答案 0 :(得分:0)

引用原始维护者Aaron Heckmann

  

[M] ongoose"玩得很好"使用数据库中的现有数据,除非您告诉它,否则不删除它。

     

[D]如果猫鼬能够连接到那个,那么该属性将会起作用,但是它不能。 [H]您可以通过将值设置为undefined来完全删除文档中的属性,这将触发$unset

来源:Google Groups

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