MongoDB/Mongoose -当为空或为假时“取消设置”

ehxuflar  于 2022-11-03  发布在  Go
关注(0)|答案(1)|浏览(151)

有没有人知道一个好方法(在MongoDB中本地或通过Mongoose)在文档属性为空时“取消设置”文档属性?
用例:我有一个可选的辅助电子邮件地址字段。它不是必填字段,默认为undefined。但是一旦填充了它,我发现很难再次清除该值。
我通常会使用预保存中间件,但在使用事务时,这些中间件似乎不会触发。
我希望的行为是,每当值为false-y(空字符串、null等)时,就应该从文档中取消设置。
我曾想过在各种模式中编写静态方法来清除其中的一些字段,但这似乎有些笨拙

6g8kf2rb

6g8kf2rb1#

我希望这就是你要找的东西

let filters = [ null,false, "undefined",""];

db.collectionName.updateOne({
  optionalEmail: {
    "$in":filters
  }
}, {
  "$unset": {
    optioanlEmail: ""
  }
});

相关问题