我有一个架构:
var talentSchema=new Schema({
name: String,
active: Boolean,
txfreq: {type: Schema.Types.ObjectId, ref: 'frequency', null:true}
});
并非所有文档都有填充的txfreq字段,并且它们最初存储为null。
在应用程序运行期间,必须将txfreq的某些值设置为null。
var pTalent=goose.talent
.where({txfreq:data.freqid,$isolated:1})
.setOptions({multi:1})
.update({txfreq:null})
.lean()
.exec();
我正在使用保证链来确保所有更新都以正确的顺序发生,但是以这种方式将txfreq设置为null根本不起作用。
将mongoose debugging设置为true,不记录任何查询,并且我可以将任何记录设置为null的唯一方法是使用游标“查找”记录并在再次保存每个文档之前将它们单独设置为null。
我非常希望使用单个更新命令来执行此操作。
如何做到这一点?
这就好像猫鼬只是忽略了命令。