假设我有一个包含用户的数据库集合,我想将一个对象添加到一个文档内的数组中。
{
_id: "636e8e1dd710eed71565741c",
username: "test",
password: "$2b$10$/s9.kRYSax380Xrxf3xyVO9Z6Otc/WVx5kBSLKfu43/wYP.TSnzvW",
tasks: [{name: task1, status: "finished"}]
}
我会让它看起来像这样:
{
_id: "636e8e1dd710eed71565741c",
username: "test",
password: "$2b$10$/s9.kRYSax380Xrxf3xyVO9Z6Otc/WVx5kBSLKfu43/wYP.TSnzvW",
tasks: [{name: task1, status: "finished"}, {name: task2, status: "unfinished"}]
}
那么,哪种方法更合适呢,因为我在向一个嵌入式数组添加一个新对象,而不是更新一个已经存在的对象?谢谢。
1条答案
按热度按时间4ioopgfo1#
POST和PATCH之间的选择取决于URL的路径。
但是,如果
_id
是有效负载的一部分,我更希望但此有效负载格式依赖于“命名约定”:
_id
用于标识要修补的条目。@add
表示任务被添加到现有数组中。"tasks@change": [{"name": "task1", "status": "archived"}]
将更新现有任务。如果服务器知道每个任务由其
name
标识,则不需要后缀:更新现有任务并添加新任务。或者甚至
我希望这些例子能帮助你找到一个合适的模式。