【问题标题】:Are MongoDB queries client-side operations?MongoDB 是否查询客户端操作?
【发布时间】:2016-09-06 10:20:03
【问题描述】:

假设我有一个文件

{ "_id" : ObjectId("544946347db27ca99e20a95f"), "nameArray": [{"id":1 , first_name: "foo"}]

现在我需要使用 $push 将数组推送到 nameArray 中。在这种情况下如何更新文档。是否在客户端检索文档并在客户端进行更新,然后将更改反映到 Mongodb 数据库服务器。整个操作在MongoDB数据库中进行。

【问题讨论】:

    标签: node.js mongodb mongodb-query


    【解决方案1】:

    您在这里要问的是 MongoDB 操作是否是客户端操作。简短的回答是NO

    在 MongoDB 中,查询以documentation 中提到的特定文档集合为目标,collection 是一组存在于单个 database 中的 MongoDB 文档。集合就是RDBMS 中的表。因此,如果查询针对特定集合,则意味着它们是在数据库级别执行的,因此是在服务器端执行的。 data modificationaggregation 操作也是如此。

    有时,您的操作可能涉及客户端处理,因为 MongoDB 没有提供开箱即用的方法来实现您想要的。一般来说,当您想要修改集合中的文档结构或更改字段的类型时,您只有那些类型的处理。在这种情况下,您需要检索您的文档,使用bulk operations 执行您的修改

    【讨论】:

      【解决方案2】:

      See the documentation:

      您的数组作为一个元素插入到现有数组中。如果数组不存在,则创建它。如果目标不是数组,则操作失败。

      没有像“将元素检索到客户端并在那里更新它”这样的说法。所以操作完全在数据库服务器端完成。我不知道任何像你描述的那样工作的操作。除非您正在链接查询,否则会修改客户端中的项目并进行更新。但这是两个独立的操作,而不是一个单一的命令。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-07
        • 1970-01-01
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        • 2014-02-23
        • 2018-09-27
        相关资源
        最近更新 更多