javascript - mange 在 mongodb 中被删除(软删除),方法是在过滤器中检查现有条件
问题描述
我有一种情况,我必须检查公司名称和公司代码,如果两者都与现有匹配,而不是应该说存在,或者如果其中一个在现有数据库中匹配,那么它也应该说它存在。我将如何在 mongo 中使用?因此,如果数据接收 isDeleted 为真,那么我还想在 if 部分中添加检查是否不添加而不是检查 id 和更新的部分,那么我还想通过 isDelete,这样如果收到的任何数据之前被删除,那么它可以再次设置为false。我将如何处理这种删除场景?
{
"userId":"tt838984984s",
"company":{
"addressee" : {
"addressee" : "Ms.1",
"title_name" : "",
"salutation" : "Drks:",
"comments" : "",
"email" : "opus7ent@example.com",
"phone" : "123456666",
"fax" : "",
"extention_group" : "",
"ext" : ""
},
"abbreviation" : "",
"care_of" : "",
"address_1" : "HELLO2",
"address_2" : "",
"address_3" : "",
"state" : "CA",
"zip" : "90024",
"is_deleted" : true,
"company_code" : "ABACAB",
"parent_company" : null,
"name" : "Abacab",
"createdBy" : "Data lolz",
"modifiedBy" : "Data",
"createdDate" : "2019-08-22T19:10:50.000+0000",
"modifiedDate" : "2019-08-22T19:10:50.000+0000",
"company_id_legacy" :1246,
"__v" : 0,
"is_registered_for" : false,
},
}
is_deleted == false
if(!isAdd) {
filter["_id"] ={ "$ne" : id};
}
let filter = {
name: { $regex: new RegExp(`^${company.name}$`, 'i') },
company_code: { $regex: new RegExp(`^${company.company_code}$`, 'i') }
}
cModel.find(filter, function (err, docs) {
if (docs.length) {
result.error = "Name already exists: " + company.name;
console.log("Name already exists", null);
let resp = api_respose.getSuccessResponse(process.env.WEB_URI, result.error);
resolve(resp);
}
else{
///saving here
}
现在假设我传递了那个 JSON,如果有is_deleted = false
(这是在 db 中添加新条目时的 Json)现在如果在 db 中有一些旧条目name
或company_code
存在,is_delete =true
那么它会抛出错误,名称已经退出
现在我的问题是如何解决这种情况?就像我想用新条目覆盖该文件一样,还是有其他方法可以做到这一点?
解决方案
推荐阅读
- mysql - 从 phpMyAdmin 在 MATLAB 中导入图像
- javascript - 动态 SQL 字符串不适用于双引号
- javascript - 如何用js求和1行和一列解决?JS
- apache-spark - 外部查找 Spark Streaming
- r - 如何制作包含大量数据的热图?
- python - ansible 错误:从版本导入 VERSION\nImportError: No module named version\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 0}
- web-services - 从 Oracle 触发器调用 Web 服务
- angularjs - Ionic 2 中具有多个字段的条码扫描器
- angularjs - AngularJS - 客户端 MVC - 在目录结构中放置“模型”的位置
- jekyll - 包括来自另一个 MD 文件的前事