我正在尝试将数据从Parse迁移到一个使用Mongo作为数据库的新项目(没有Parse/Parse Server)。由于两个项目之间的模式不同,我正在手动编写一个迁移脚本来实现这一点。
据我所知,Parse似乎对其对象使用10字符长的it (数字、小写字母和大写字母的组合),而Mongo使用24个字符的长it(12个字节表示为十六进制)。
现在,当将文档的数据从旧项目迁移到新项目时,我使用了一个函数,该函数将解析ID转换为惟一的ObjectId (它将每个字符转换为2位数字的十六进制值,然后用4个零填充20个字符的字符串)。
这样做好吗?我避免使用Mongo的自动ObjectId生成,以防我需要重新迁移任何旧的Parse文档,并在新数据库中找到匹配的文档。我知道在Mongo中自动生成的ObjectIds还嵌入了一些其他信息,比如创建日期,但是我认为这并不重要,我可以使用我的自定义ObjectId生成器吗?但是,我不确定对性能的影响/如果我只是以错误的方式进行这种迁移。
发布于 2016-07-07 21:23:12
默认情况下,MongoDB使用_id作为主键。为了避免碰撞,_id必须是唯一的。将唯一的ObjectId生成到_id的方式是很好的。只要它们是独一无二的,你甚至可以减少20个字符的衬垫,以节省空间。
https://stackoverflow.com/questions/38254689
复制相似问题