Perché Meteor.js utilizza i propri algoritmi per gli ID?Meteor.Collection.ObjectID() vs MongoDB ObjectId()
Perché non utilizza ObjectId() di MongoDB?
Perché Meteor.js utilizza i propri algoritmi per gli ID?Meteor.Collection.ObjectID() vs MongoDB ObjectId()
Perché non utilizza ObjectId() di MongoDB?
Meteor utilizza lo stesso metodo per oggetto id se si sceglie di usarlo:
Meteor.Collection.ObjectID()
è lo stesso del MongoDB ObjectID
Il suo solo sotto il nome Meteor.Collection
. Usa EJSON per mantenere gli ID oggetto in JSON ordinario all'estremità client. Perché in fondo ci sono 2 i database con meteora
Minimongo
Si tratta di una sorta di cache MongoDB sul lato client. I dati vengono scaricati dal mongodb principale sul server a questo quando si carica il browser. Quando vengono apportate modifiche, vengono inviate al server.
Server MongoDB
Questa è la MongoDB originale 10gen sul server
Quindi, a causa di questi due database Meteor deve avvolgere la funzionalità MongoDB in Meteor.Collection
e consentono di utilizzare lo stesso codice sia sul client e server.
Per impostazione predefinita, la località non utilizzerà ID oggetto, verrà utilizzato un tipo di testo alfanumerico casuale. Questo è fatto in modo che tu possa facilmente utilizzare gli ID nei tuoi URL e ID nei tuoi attributi html.
Se si utilizza new Meteor.Collection.ObjectID()
si otterrà un oggetto ObjectID
che utilizzerà le specifiche di mongodb di ObjectID sul lato server. Il valore di timestamp nell'ID oggetto non viene trattenuto ma ciò non dovrebbe causare alcun danno.
Da 0.9.1 Meteor suggerisce di utilizzare Mongo.ObjectID
anziché Meteor.Collection.ObjectID
. Fondamentalmente entrambi sono uguali. Controllare history.md per ulteriori modifiche alle convenzioni di denominazione.
Sì, l'ho visto, ma ho avuto difficoltà a capire come ottenere la stringa _id. Usato il seguente 'var newID = new Mongo.ObjectID; item._id = newID._str; ' Grazie a questo argomento http://stackoverflow.com/questions/19236685/how-do-i-use-new-meteor-collection-objectid-in-my-mongo- query-con-meteora – yankeyhotel
Ho sprecato un bel 20 minuti cercando di capire perché la regex '/^[0-9a-fA-F] + $ /' restituiva 'false' con i miei ObjectId ... Hai menzionato che Meteor usa" alfanumerico casuale testo ", esiste una logica per verificare se una determinata stringa è un ID valido? –
@BradM si potrebbe provare a cercare '/^[A-Za-z0-9] {17} $ /' potrebbe funzionare. Anche non completamente alfanumerico, non ho mai visto 0 o 1 in un _id. Penso che i numeri possano essere mescolati visivamente come se io e 1 non venissero usati. – Akshat