meteor - Where does the _id being generated (and checked)? -


the database action insert seems synchronous returning _id right after insertion, therefore no callback needed here.

the question lies on _id being generated (and checked), since seems fast synchronous action done on minimongo, yet there no full list of _id of collection, how’s possible minimongo check whether _id duplicated or not??

when using collection.insert on client, _id generated on client using random uuid algorithm, hence seemingly latency compensated client-side insertion.

collection.insert being implemented special case of meteor.method, know @ same time client simulation run on client, corresponding server operation triggered, client document sent server along locally generated _id.

on server, there's check see if _id correct (truly unique) , server acknowledge valid insertion client.

if client generated _id not unique after all, insert fail "duplicate key error" (this happen 0.001% of time - probability lower, , have resubmit client form or whatever).

to answer question, _id can generated in browser in case of client insert, it's validity checked on server.

edit : assumed meteor trying recover duplicate key error , generate new key avoid duplicity , propagate on client, tested use case , found out wrong, @tom freudenberg pointing out.


Comments