我正在为我的以用户输入的数据为中心的应用程序进行“清除过程”。本质上有一个父实体和一个子实体。如果我“滑动删除”父对象,系统会正确删除子对象。所以那部分工作正常。
现在,我要做的是遍历并删除所有早于 60 岁的子对象。标记为“协调”的日子。将获取和删除请求放在一起应该没有问题。我不知道的是如何获取和删除没有子对象的父对象(早于?60?天)?
我希望我不必遍历整个集合,获取子对象的计数并将该值保存到父对象,然后删除带有“0”的父对象,但我想这将是我的 B 计划。数据结束60 天的时间段可能会产生 60-100 个新的父对象和 150-300 个新的子对象,如果用户始终掌握与个人工作相关的收入,子对象通常应在创建后的 1-3 周内标记为“已核对”及时处理元素。
父实体主要是字符串(约20个属性),但也有6个左右的 bool 和小数属性,子实体大约有6个字符串、2个小数和1个 bool 属性。因此,如果用户没有选择性地删除任何内容,我不确定在一年的典型使用情况下,数据库大小会转化为什么。
我认为归档过程没有任何必要,因为从长远来看,这些信息并不“重要”。但是,我不能指望我的目标受众在适当的时候习惯性地手动“滑动删除”父对象,这意味着如果不实现清除过程,数据集会随着时间的推移而变大。
是否有一个简短的响应来提供 Core Data 将响应的一般方法或方法/sql 语法?还是我应该从不同的角度来解决这个问题?提前致谢。
最佳答案
删除子记录后,您可以执行查询以根据给定条件检索父记录,并遍历每个返回的父记录并将其删除。以下是获取请求的样子:
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"ParentEntity"];
request.predicate = [NSPredicate predicateWithFormat:@"date < %@ AND children.@count == 0", olderThan60Days];
request.includesPropertyValues = NO; // don't really care about these since it's for deletion
NSError *error;
NSArray *recordsToDelete = [context executeFetchRequest:request error:&error];
执行获取请求,并逐个删除每个返回的对象。
关于IOS 核心数据删除没有子项的父记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18563033/
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa