使用Morphia ORM,每次列表(子文档)的元素(多个元素)发生更改时,是否应该使用save(entity / doc),或者使用update-operations更新只更新已更改的元素?
我在 qa (QuestionAnswer)子文档中有以下文档(考试)(可以在 50-100 条目之间增长)。考虑到以下因素:
文件(仅提供一个想法)
{
"user": "user-record-ref",
"name": "some-name",
"dob": "some-timestamp",
"qa": [
{
"question": "some-question1",
"choices": ["A", "B"],
"answer": ["A"]
...
},
{
"question": "some-question2",
"choices": [],
"answer": ["descriptive-answer"]
...
}
]
}
我使用Spring Boot& amp ;; Morphia以下列方式(只是为了给出一个想法)
public class Exam {
private String name;
private Date dob;
@Reference
private User user;
@Embedded
List<QuestionAnswer> qa;
}
使用 Morphia ORM ,每次列表元素(子文档)更改或使用更新时,是否应使用保存(实体/文档) - 操作只更新已更改的元素?
答案 0 :(得分:0)
我认为保存方法是编码的简单方法之一。将更新调用发送到后端总是更有效率,因为它可以减少通过线路的流量,并减少磁盘上的数据更改量。如果您信任您的数据库,您也可以将您的写入问题设置为甚至不等待保存 - 可能是应用程序响应非常快。
但是,由于您对此特定QA子文档进行了很多更改,因此我会考虑将QA保存在自己的集合中。这可以在QA对象本身上调用 save ,而不必担心每次调用时将其余的用户数据发送到服务器。