2017-06-16 76 views
1

当我的聚合没有发现任何东西,数据是[]时,它仍然可以解决我的功能。如何检查你是否真的从你的聚合中得到结果

我该如何检查我的聚合实际上是否找到了一些东西?

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

你使用的是mongodb吗?如果是,哪个版本? – trincot

+0

最新版本3.4 – torbenrudgaard

回答

0

解决它像这样,if (!data) {永远不会起作用,因为即使蒙戈返回一个空的对象,它仍然是一个对象。

相反,我发现这个功能

function isEmpty(obj) { 
    return Object.keys(obj).length === 0; 
} 

所以,现在我可以用if (isEmpty(data)) {和它完美的作品。

相关问题