我在backand中插入了某些行,在id字段中使用我自己的自定义id,在检查数据库时,我看到id被更改为backand自己的id,从1,2,3开始……按顺序。我希望保留我的原始I,文档中没有提到这一点。请帮帮忙。
对Matts答案的回应:
我的问题清楚地表明,我不想‘创建’新的ids,我想保留我发送的原始ids。在第n次阅读了Backand糟糕的文档后,我看不到这个问题得到了解决。我个人觉得Backand认为用户提供的id (通常需要相当大的算法,以保持唯一性和随机性不好)和他们超级酷的自动递增整数1,2,3.是更好的主键,因此覆盖客户端ids。所有的支持人员都像一只鹦鹉一样重复着和Matt一样的话,甚至不理解我的具体要求。不是的。我不能从后台创建随机ids,因为相同的ids映射到其他系统。看在上帝的份上,请修复你的文档。没有提到它会覆盖ids。
对于Ex: Firebase首先检查用户提供的id,如果它在那里,它不会接触它,如果它不在那里,它会创建自己的id,但我不能使用firbase,因为它自己的限制,切换到Mongo希望这应该会有所帮助。
发布于 2017-04-14 01:02:33
感谢您使用Backand。您可以使用文档中描述的将UUIDs用作对象的主键的技术:http://docs.backand.com/#using-uuid-primary-keys
通过遵循这种方法,您将能够将ID设置为您想要的任何内容。否则,当您将ID字段以自动递增的整数形式发送到API时,所有ID字段都会被覆盖。如果在创建时在自定义操作中覆盖这些设置,则可以在创建时绕过此行为。
EDIT -作为后续,绕过Backand对数据的自动覆盖的一种技术是访问数据库并删除ID列,将表中的另一个标记为主键。Backand控制name字段,以驱动一些自动完成功能。通过删除ID字段并更改主键,或者简单地删除我们对ID字段设置的自动约束,您应该能够实现所需的功能。不过,这不可能通过UI实现--应该通过使用MySQL工作台等工具直接连接到数据库来实现。连接数据库所需的信息可从设置->数据库下的备份和应用程序仪表板获取
另外,关于最初建议的解决方案,重要的是要注意,我并没有盲目地应用它。正如我所提到的,使用所描述的方法-创建自定义操作来驱动所创建的ID -可以适用于填充您想要的任何ID字段。在示例代码中,您可以不生成GUID,而是从提供ID的对象上的另一个字段复制值,或者真正对它执行任何您想要的操作。不过,关键是更新底层数据库列,以删除自动增量填充并将数据类型更改为正确的值。我已经调整了文档,以包含对此的提及。
https://stackoverflow.com/questions/43373719
复制相似问题