当我的聚合找不到任何内容且数据为[]时,它仍会解析我的函数。
如何检查我的聚合物是否确实找到了什么?
我的if (!data) {
无效
usersTable.aggregate (
{
$match:{
_id: UserID
}
}
,function (err, data) {
if (err) {
throw new Error('findUser: ' + err);
} else {
console.log("found: " + JSON.stringify(data, null, 4));
if (!data) {
throw new Error('ERR: Unknown userID in call of newBooking');
}
resolve("OK");
};
});
答案 0 :(得分:0)
解决这个问题,if (!data) {
永远不会有效,因为即使mongo返回一个空对象,它仍然是一个对象。
相反,我找到了这个功能
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
所以现在我可以使用if (isEmpty(data)) {
,它完美无缺。