我有一个使用socket.io和mongoose的过滤器。如果在查询时没有返回结果,我会尝试打印出来但是它不起作用。
Restaurant.find({ $text : { $search : query } },
{ score : { $meta: "textScore" } })
.sort({ score : { $meta : 'textScore' } }).exec(function(err, results) {
console.log(results)
if (!results){
console.log(results)
}
它将两个空数组打印到控制台。页面完成加载时,第一个空数组由第一个console.log
打印。当我单击带有空搜索的过滤器按钮时,将打印出第二个空数组。当我删除第一个console.log
时,没有打印出来。永远不会执行if条件中的console.log
。
我尝试了results == []
和results == null
,但它仍然不起作用。但是,当有结果时,它工作正常。谁能解释为什么会发生这种情况并提出解决方案。谢谢!
答案 0 :(得分:1)
查找将以数组结果,您应该检查数组长度
results.length > 0