繁体   English   中英

仅在尚不存在的情况下插入文档

[英]Insert document only if not already exists

我正在创建文档

Subscription.create({ email: req.body.email }, (err, subscription) => {
  //
});

我在Mongoose模式中使email字段唯一,因此无法用同一封电子邮件创建多个文档。

但是我不在乎某个电子邮件是否已经存在,所以我现在不想收到重复的错误。 仅当电子邮件不存在时才如何插入,如果电子邮件不存在则不创建而不通知用户?

我认为最好的做法是不告诉用户数据库中是否已经存在该电子邮件,因为它可以用来测试电子邮件是否与该站点相关联。 似乎并没有太大问题,但是出于隐私考虑,我还是认为最好不要说出来。

在猫鼬中,您可以使用pre函数。

var schema = new Schema(..);
schema.pre('save', function(next) {
  // Check if the mail exists. If it does, just throw an exception
  // If not, just create the thing using next.
  next();
});

在调用保存功能时,应格外小心以捕获异常。 我相信这会做的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM