现况分析:
大家应该知道通过MongoDB存入非关系性数据时,MongoDB会产生一个目录集合(.files),一个数据集合(.chunks)。一个用来存放数据属性,一个存放具体的数据。二者的关联关系:
目录集合记录(_id) 1---------->N 数据集合记录(files_id)
所以针对定期清理MongoDB中的记录时,得两个集合都进行对应的删除操作。
问题分析:
因此用C编程:需要解决的技术问题如下:
1、如何获取过时的目录集合中的记录信息(用于删除目录集合中的记录);
2、如何获取上述记录中的唯一标识字段:_id(用于删除数据集合中的记录);
针对上述两个技术问题:我网上收集的结果来说(至2018/9/12)
第一个问题:多数博客里提到的MongoDB删除记录,都是用前一步创建记录的bson_t对象,作为下一步mongoc_collection_remove删除函数的对象。并且没考虑实际运用中存在的指定条件删除和两个集合关联删除的情况。
第二个问题:网上的解答很少,我也悬赏提问过,但收效不高。可能是我能力有限看不懂网上的解答,最后想了一个笨办法解决了问题。
条件假设:
如果要重头讲清,篇幅太长,在此对各位读者进行如下假设:
1、已经正确安装MongoDB的C语言驱动,并且能通过简单C程序查询到MongoDB中的记录;
2、对基础的C语言操作MongoDB函数有了一定的了解,知道bson_t的概念;