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

.save()和使用update()之间的猫鼬区别

郝原
2023-03-14
问题内容

要修改猫鼬现有条目中的字段,使用之间有什么区别

model = new Model([...])
model.field = 'new value';
model.save();

还有这个

Model.update({[...]}, {$set: {field: 'new value'});

我问这个问题的原因是因为有人建议我昨天发布一个问题:NodeJS和Mongo-
当多个用户同时发送请求时出现意外行为。该人员建议使用更新而不是保存,但我尚不完全清楚为什么会有所作为。

谢谢!


问题答案:

首先有两个概念。您的应用程序是 客户端 ,Mongodb是 服务器

主要区别在于,.save()在客户端代码中已经有一个对象,或者必须先从服务器检索数据,然后再写回整个内容。

在另一方面.update()确实
要求数据被加载到从服务器的客户端。所有交互都发生在服务器端,而无需检索到客户端.update()。因此,当您向现有文档中添加内容时,这种方式会非常有效。

此外,还有一个multi参数,该参数.update()允许对多个符合查询条件的文档执行操作。

.update()用作呼叫时,便利方法中有些东西会丢失,但是某些操作的好处是您必须承担“折衷”。有关此信息和可用选项的更多信息,请参阅文档。

简而言之.save()是客户端接口,.update()是服务器端。



 类似资料:
  • 本文向大家介绍Hibernate中save()和persist()之间的区别,包括了Hibernate中save()和persist()之间的区别的使用技巧和注意事项,需要的朋友参考一下 Save()和这两种方法都用于在数据库中保存对象。  根据文档- Save()-坚持给定的瞬时实例,首先分配一个生成的标识符。(或者,如果使用分配的生成器,则使用标识符属性的当前值。)如果关联是用cascade

  • 问题内容: 我正在研究MySQL,我知道update用于更新表中的记录或行。那么,那有什么不同呢?好像他们是一样的。 谢谢,任何帮助将不胜感激。 问题答案: 是DDL(数据定义语言)语句。而DML(数据操作语言)语句是。用于更新表的结构(添加/删除字段/索引等)。而用于更新数据。

  • 在Cloud Firestore中,有三种写入操作: 在文档中,它说使用将给定对象与现有文档合并。 使用更新(对象)时也会发生同样的情况。。。那么有什么区别呢?谷歌会复制这样的功能,这似乎很奇怪。

  • 本文向大家介绍Spring Java中Save和SaveAndFlush之间的区别,包括了Spring Java中Save和SaveAndFlush之间的区别的使用技巧和注意事项,需要的朋友参考一下 Save和saveAndFlush均可用于保存实体。它们都属于Spring数据库。保存可能会或可能不会立即将您的更改写入数据库。当我们调用saveAndFlush时,系统将强制您的模型状态与数据库进行

  • 问题内容: 通常我已经阅读过save()方法为对象生成新标识符,并且仅触发 INSERT 并保存它,它不会更新它,而saveOrUpdate()方法可能会 插入 或 UPDATE 记录。 但是根据我的经验,在这里我可以通过示例代码更好地进行解释, 假设有 A类 ,我觉得从记录 表A 的 所以现在我有了一个持久对象, 现在,我试图通过简单地修改某些字段来使用save方法保存记录, 现在我开除 因此,

  • 问题内容: 我试图通过测试一些CRUD操作来学习spring数据JPA 。 我碰到两个方法和。我看不出两者之间的区别。在调用时,我的更改也将保存到数据库中,所以的用途是什么。 问题答案: 在上,此命令中的更改将立即刷新到DB。有了,这未必是真实的,并且可能仅仅停留在内存中,直到或者发出命令。 但是请注意,即使你刷新了事务中的更改并且不提交它们,这些更改对于外部事务仍然是不可见的,直到对该事务中的提