【发布时间】:2017-01-08 06:09:44
【问题描述】:
(编辑澄清我想在从对象中删除属性时从数据库中删除/删除属性)
我有一个小型 Sails 应用程序,它具有无模式模型,允许将属性添加并保存到数据库(目前只是用于测试目的的 sails-disk 文件系统适配器)。
我遇到的问题是我找不到从数据库中永久删除属性的方法。
当我删除作为模型实例的对象的属性时,我还希望从数据库中删除该属性。当我移动到像 MongoDB 这样的对象数据库并拥有具有动态创建属性的对象时,这将很有用。
使用delete object[attributeName]删除属性,然后使用实例方法object.save()保存不起作用,删除的属性仍然存在。
例如,如果我有这个对象:
{
"name": "Chair",
"colour": "white"
}
假设我想删除 colour 属性以将其替换为 material 属性,如下所示:
{
"name": "Chair",
"material": "pine"
}
更新数据库中的对象后,会添加新的material 属性,但不会删除已删除的colour 属性。
所以数据库中的最终结果是这样的:
{
"name": "Chair",
"colour": "white",
"material": "pine"
}
所以这不是我想要的结果。
有没有办法使用 Sails/Waterline 从数据库中的对象中永久删除/删除属性?
【问题讨论】:
-
这是相对的:stackoverflow.com/questions/28747808/… 但我认为你试图做的事情是不可能的,但我确实隐约记得在 v1 文档中看到了一些关于这可能的东西,但现在找不到它所以不要不要相信我的话。我也认为你最好修改你的模型,以便每个项目都有各种相关的选项。见这里:0.12.sailsjs.com/documentation/concepts/models-and-orm/…
-
感谢@CraigvanTonder,很遗憾您的链接没有提供任何额外的线索。也许你是对的,我所希望的是不可能的。 :(
-
我编辑了原始问题以澄清意图 - 之前可能含糊不清......
-
似乎我可能已经偏离了想法,认为您正在尝试修改模型属性值,正如我试图指出的那样,这目前是有问题的。好吧,你有一个 JSON 对象,你必须把它保存在sails-disk 中吗?因此,然后使用 Sails 并使用具有包含 JSON 的属性值的模型。有关更多信息,请参见此处:sailsjs.com/documentation/concepts/models-and-orm/attributes - 那么您将能够使用水线功能 (sailsjs.com/documentation/reference/waterline-orm/models) 来创建/读取/更新/删除?
标签: javascript sails.js waterline