这是mongoDB的架构代码:
{
"_id" : ObjectId("5fa2ae1085e87b2770398837"),
"ClientId" : "5fa2ae0985e87b2770398836",
"AddtasksMain" : [
{
"AddtasksId" : "ji36staqpody$s",
"_id" : ObjectId("5fa2b5e1f2cf6602104c5b8f"),
"comments" : []
},
{
"AddtasksId" : "z3u84xsh5ujy$s",
"_id" : ObjectId("5fa2b6f88ac746155883cc80"),
"comments" : []
}
],
"__v" : 0
}
以下是我尝试评估以查找空数组的路由代码:
Comments.findOne({"AddtasksMain.AddtasksId":req.query.Id4AddtasksBigpaths},function (error, data) {
if (error) {
console.log("error");
} else{
data.AddtasksMain.forEach(element => {
if(element.AddtasksId == req.query.Id4AddtasksBigpaths)
{
arrComm = element.comments;
console.log("arrComm = "+ element.comments);
Comments.findOne({'arrComm.0': {$exists: true}},
function (error, success) {
if (error) {
console.log("Comment is empty");
return res.end('{"warning" : "Add Comment first", "status" : 400}');
}
else {
console.log("status for rejection set");
}
})
}
})
}
})
因此,当执行此代码时,console.log("arrComm = "+ element.comments);
正在打印一个空数组。但是它仍然处于else
状态。我希望它进入错误“如果”条件并执行该代码。但是,即使数组为空还是非空,它也会进入else条件。我犯了什么错误?
我也尝试过这种方式:
if(!arrComm) {
//statement
}
else {
}
但是这样也可以进入其他条件。 :(