gpt4 book ai didi

php - 更新具有未知修改字段的 MongoDB 集合的最佳实践

转载 作者:可可西里 更新时间:2023-11-01 09:37:58 26 4
gpt4 key购买 nike

所以我正在构建一个使用 PHP 和 MongoDB 的应用程序,它在读取和写入方面都有相当大的流量。几个月后,每秒应该有大约 2500 次读取和每秒 200 次写入(不确定不过,与其他流量相比,它在流量方面的实际评级如何)。

我有点好奇更新集合时要做什么;文档示例显示了一个 shell 更新特定的集合字段,但没有解释当集合中的任意数量的字段可能已被更改时会发生什么。

例如,假设我有一个用户集合(非常简化的示例):

user = {  _id     :  MongoId(...),  name    : 'User One',  email   : 'email@address.com',  company : 'Company',  ...}

我们在表单中显示所有可编辑字段,但用户只更改他们的电子邮件地址。

严格来说,就性能而言,最好将原始值存储在隐藏输入中以在 PHP 中比较它们,然后构建特定于更新的查询吗?

或者我是否应该替换所有可编辑字段?

它将是一个包含对象和数组的集合——而不是这里显示的简单集合。

我知道优化紧随其后,但我也希望养成使用 MongoDB 的良好习惯。

谢谢。

最佳答案

您可能会检索整个对象以显示可编辑的表单 - 我在这里假设您将显示当前姓名、电子邮件等,并允许他们编辑和提交新版本。这意味着您可以检查更改的内容并具体更新,而不是每次都上传和替换整个对象。

我建议使用优化的更新操作:"MongoDB Updating" .这样您就可以执行更优化的就地操作,而不是每次要编辑特定字段时都替换整个对象。您可能主要查看 $set$addToSet 和(如果您处理大量嵌套对象,则 $ 位置运算符。

来自文档:

Modifier Operations

Modifier operations are highly-efficient and useful when updating existing values; for instance, they're great for incrementing a number. [And other more complicated things]

...

a modifier update has the advantages of avoiding the latency involved in querying and returning the object. The modifier update also features operation atomicity and very little network data transfer.

如果您对实现特定操作有更具体的问题,请尽管提问。

关于php - 更新具有未知修改字段的 MongoDB 集合的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com