【问题标题】:How to properly use 'exist' function in mongodb like in sql?如何像在sql中一样在mongodb中正确使用'exist'函数?
【发布时间】:2017-03-02 14:00:36
【问题描述】:

我正在使用 Node.js + mongodb。我的收藏中的文件很少,我想知道我的收藏中是否有任何文件符合我的条件。当然我可以简单地使用 myModel.find({ myField: someValue }) 并检查是否有任何事情发生。但我想使用像 sql 这样的解决方案提供exists 关键字?请帮帮我

编辑:我的错。我忘了说“性能第一”。

【问题讨论】:

    标签: node.js mongodb nosql


    【解决方案1】:

    在mongodb中有一个exist机制,我将在下面演示一个示例。

    例如下面的例子,我正在寻找有tomato.consensus 字段并且它是空的记录,所以我可以删除它们或避免它们。如果我正在寻找“tomato.consensus”:Dublin,我会将 Null 更改为 Dublin,以匹配它。

    如果没有引发任何问题,我希望这会有所帮助

    tomato
    ----consensus
    
    db.movieDetails.updateMany({$and: [
            {"tomato.consensus": {$exists: true} },
            {"tomato.consensus": null} ] },
    ]})
    

    【讨论】:

      【解决方案2】:

      MongoDB 的$exists 实际上并不能帮助您找出某个文档是否存在于您的集合中。例如,它用于为您提供具有特定字段集的所有文档。

      MongoDB 没有原生支持类似存在的 sql。但是,您可以使用myModel.findOne({ myField: someValue }),然后检查它是否为空。

      为了提高性能,您可以告诉 MongoDB 仅通过投影加载对象 ID,如下所示:

      myModel.findOne({ myField: someValue }, {_id: 1})
      

      【讨论】:

        猜你喜欢
        • 2015-03-05
        • 1970-01-01
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 1970-01-01
        • 2013-02-24
        相关资源
        最近更新 更多