Meteor.Collection.ObjectID () vs MongoDB ObjectId()

Pourquoi Meteor.js utilise ses propres algorithmes pour les identifiants?

Pourquoi N'utilise-t-il pas ObjectID () de MongoDB?

28
demandé sur Brian 2013-03-10 06:18:37

2 réponses

Meteor utilise la même méthode pour les id d'objet si vous choisissez de l'utiliser:

Meteor.Collection.ObjectID() est le même que celui de MongoDB ObjectID

C'est juste sous le nom Meteor.Collection. Il utilise EJSON pour contenir les id d'objet dans JSON ordinaire à la fin du client. Parce que fondamentalement il y a 2 bases de données avec meteor

Minimongo

C'est une sorte de cache de mongodb à la fin du client. Les données sont téléchargées du mongodb principal sur le serveur vers celui-ci lorsque le navigateur se charge. Lorsque les changements sont faits, ils sont poussés vers le serveur.

Serveur MongoDB

C'est le mongodb original de 10gen sur le serveur

Donc, à cause de ces deux bases de données, Meteor doit envelopper la fonctionnalité mongodb dans Meteor.Collection et vous permettre d'utiliser le même code sur le client et le serveur.

Par défaut, meteor n'utilisera pas D'ID D'objet, il utilisera une sorte de texte alphanumérique aléatoire. Ceci est fait pour que vous puissiez facilement utiliser les ID dans votre URL et les ID dans votre html attribut.

Si vous utilisez new Meteor.Collection.ObjectID() vous obtiendrez un objet ObjectID qui utilisera la spécification d'ObjectID de mongodb à la fin du serveur. La valeur d'horodatage dans L'ID D'objet n'est pas bloquée, mais cela ne devrait pas vraiment faire de mal.

35
répondu Akshat 2013-03-10 11:33:48

Depuis 0.9.1 Meteor suggérant d'utiliser Mongo.ObjectID au lieu de Meteor.Collection.ObjectID. Fondamentalement, les deux sont les mêmes. Vérifier history.md pour plus de changements dans les conventions de nommage.

5
répondu Rajanand02 2014-10-31 16:26:11