当前位置: 首页 > 面试题库 >

MongoDB Node findone如何处理无结果?

杜俊楚
2023-03-14
问题内容

我在mongodb节点上使用npm 驱动程序

我有

collection.findOne({query}, function(err, result) {
    //do something
}

问题是说我没有任何结果,err仍然null是我是否找到结果。我怎么知道查询没有找到结果?

我也尝试过

info = collection.findOne(....

但这info仅仅是undefined(它看起来是异步的,所以我不认为这是要走的路。)


问题答案:

未找到任何记录都不是错误情况,因此您要查找的是中缺少值result。由于任何匹配的文档将始终是“真实的”,因此您只需使用简单的if (result)检查即可。例如,

collection.findOne({query}, function(err, result) {
    if (err) { /* handle err */ }

    if (result) {
        // we have a result
    } else {
        // we don't
    }
}


 类似资料:
  • 问题内容: 我使用MSSQL和ADO运行各种SQL语句。 代码序列如下所示: 如果SQL返回结果为空,则最后一条语句将失败。如何检查这种情况以避免运行时错误? 注意:SQL语句来自用户在其中键入SQL的备忘录。 问题答案: 如果您的查询返回记录集(报表),你应该 不 使用,而只是或。 对于不返回记录集例如查询/ / ,使用。在大多数情况下,您会通过查询返回。 其他SQL语句,你应该使用是/ / /

  • 特别是如果信号处理需要调用一个/一些活动,我如何实现? 我试图返回数据或异常,但它不起作用。 无法从信号方法返回数据。抛出异常将阻止工作流执行。

  • 我使用的是Amazon SQS队列,我有一个使用队列中的消息的类。我正在努力使消息尽可能接近实时地被消耗,所以我需要消耗代码被无休止地运行。队列中的消息将持续超过半天。 在web服务器上,使用delayed_job或sidekiq在后台连续运行进程。 备选方案2 有一个单独的服务器,有一个专用于使用消息的ruby应用程序。 备选方案3 将SQS使用者放置在rake任务中,并使用系统调用在后台启动该

  • 有时候避免对公司或工程的成功至关重要却很无聊的任务是不可能的。这些任务可能真的会降低那些必须执行它们的人的斗志。最好的处理方法是使用或者发扬Larry Wall的程序员懒惰美德。试着找一些方法让计算机去做这个任务,或者帮助你的队友去做这个。用一个程序花一个星期去完成要手动去用一个星期完成的任务能让你懂得更多,并且有时候这是可重用的。 如果所有其他的途径都不能工作,为那些必须做这个无聊任务的人道歉,

  • 官方文档中没有那么多信息,所以我想我误解了什么,并且错误地使用了函数。但我到底做错了什么? 更新 我发现,如果使用,就可以避免这个特殊的问题。比如: 但真正的问题是,在我的情况下,我需要根据提供的数据返回一个数字(而不是)。我可以在这里创建一个新的,但无论如何,以后我应该。例如,在final中。因此,如果我执行,那么它将失败。 但它无论如何都不起作用,困在: 注意到如果删除步骤,它就可以工作了。在

  • 这是第一个类MyServlet.java,我使用另一个名为compute.java的代码调用它来计算,它调用函数,整个操作通过bcak端的R代码完成,这个文件的链接在compute类中给出。 一个名为ClassNotFoundException的错误正在中断程序。 MyServlet.java 我在这两行代码中发现了一个错误,特别是