gpt4 book ai didi

meteor - _id 在哪里生成(并检查)?

转载 作者:行者123 更新时间:2023-12-01 11:33:22 25 4
gpt4 key购买 nike

数据库操作插入现在似乎是在插入后立即同步返回_id,因此这里不需要回调。

问题在于 _id 在哪里生成(和检查),因为这似乎是在 miniMongo 上完成的快速同步操作,但是没有某个集合的 _id 的完整列表,miniMongo 怎么可能检查_id是否重复??

最佳答案

在客户端上使用 Collection.insert 时,_id 是在客户端上使用 random uuid algorithm 生成的,因此看似完美的延迟补偿了客户端插入。

Collection.insert被实现为Meteor.method的一个特例,我们知道在客户端模拟运行的同时,一个对应的服务器触发操作时,客户端文档连同其本地生成的 _id 一起发送到服务器。

在服务器上,检查 _id 是否正确(真正唯一)并且服务器确认有效插入返回给客户端。

如果客户端生成的 _id 毕竟不是唯一的,那么插入将因“重复键错误”而失败(这可能发生在 0.001% 的时间内——概率甚至更低,你将不得不重新提交你的客户表格或其他任何东西)。

为了具体回答您的问题,_id 可以在客户端插入的情况下在浏览器中生成,但最终会在服务器上检查其有效性。

编辑:我最初假设 Meteor 试图从重复 key 错误中恢复并生成一个新 key 以避免重复并将其传播到客户端,我测试了用例并发现我错了,感谢@Tom Freudenberg感谢您指出这一点。

关于meteor - _id 在哪里生成(并检查)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com