Meteor:当客户端插入文档时,服务器和客户端如何生成相同的_id?

时间:2017-07-17 02:00:35

标签: meteor

import {Mongo} from 'meteor/mongo';


export const play = new Mongo.Collection('play');

Meteor.methods({
    'play.insert':(value)=>{
        let doc_id = play.insert({value});
        console.log(doc_id);
    }
});

调用此方法时,客户端和服务器端都具有相同的doc_id。 这怎么可能?服务器如何知道客户端使用了什么? 因为当在服务器中调用play.insert({value})时,{value}没有_id,服务器"如何知道"要使用哪个ID?

1 个答案:

答案 0 :(得分:1)

根据官方流星指南

  

每个Meteor Method调用与调用Method的客户端共享一个随机生成器种子,因此客户端和服务器方法生成的任何ID都保证相同。这意味着您可以安全地使用客户端上生成的ID在将Method发送到服务器时执行操作,并确保在Method完成时ID将相同。这种情况特别有用的一种情况是,如果要在数据库中创建新文档,则立即重定向到包含该新文档ID的URL。

如果您想了解更多相关信息,可以查看Meteor指南的this部分。