Duncan
在删除 company.employee 集合的数据时,可以考虑以下几点:
1. 集合存储中哪种类型的数据:非结构化数据(也可以称为 Lob 对象)、结构化数据、半结构化数据
2. 需要删除集合中的哪种类型的数据:非结构化数据、结构化数据、半结构化数据
3. 是否需要带条件删除集合中满足条件的数据
4. 集合的数据量是否极大(百万级别以上)
假设集合中只存储了非结构化数据,现需要删除集合中的非结构化数据,可以分为以下几种情况:
1)删除指定对象 id 的非结构化数据,可以使用 deletelob() 方法,方法的详细介绍参见链接:
http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432190831-edition_id-304
2)删除集合中所有的或满足条件的非结构化数据,则需要通过编写脚本调用 listLobs() 方法获取满足指定条件的非结构化数据的游标对象,遍历游标对象获取非结构化数据的对象 id,然后调用 deleteLob() 方法删除指定对象id的非结构化数据。listLobs() 方法的详细介绍请参考链接:
http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432190841-edition_id-304
3)在数据量极大的情况下,采用 listLobs()+deleteLob() 的方式删除集合中所有的非结构化数据的效率比较低,可以采用 truncate() 方法删除集合中所有的非结构化数据。关于 truncate() 方法的详细介绍请参见链接:
http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432190846-edition_id-304
假设集合中只存储了结构化、半结构化数据,现需要删除结构化、半结构化数据,可以分为以下 2 种情况:
1)删除集合中所有的或满足特定条件的结构化、半结构化数据,可使用 remove() 方法,关于 remove() 方法的详细介绍参见如下链接:
http://doc.sequoiadb.com/cn/sequoiadb-cat_id-1432190843-edition_id-304
2) 在数据量极大的情况下,采用 remove() 方法 删除集合中所有的结构化、半结构化数据的效率比较低,可以采用 truncate() 方法删除集合中所有的结构化、半结构化数据。
假设集合存储了非结构化数据、结构化或半结构化数据时,若需要集合中所有的数据时,包括非结构化数据、结构化或半结构化数据,可以使用 truncate() 方法,若只是删除集合中某一种类型的数据,则不能使用 truncate() 方法,而需要采用上面提及的非结构化数据对应的删除方法以及结构化或半结构化数据对应删除方法。