30

Meteor.js が ID に独自のアルゴリズムを使用するのはなぜですか?

MongoDB の ObjectId() を使用しないのはなぜですか?

4

2 に答える 2

37

Meteorは、オブジェクトIDを使用することを選択した場合、同じメソッドをオブジェクトIDに使用します。

Meteor.Collection.ObjectID()MongoDBと同じですObjectID

そのMeteor.Collection名前のすぐ下。EJSONを使用して、オブジェクトIDを通常のJSONでクライアント側に保持します。基本的に流星のデータベースが2つあるので

ミニモンゴ

これは、クライアント側のmongodbの一種のキャッシュです。ブラウザがロードされると、サーバー上のメインのmongodbからこのmongodbにデータがダウンロードされます。変更が加えられると、それらはサーバーにプッシュされます。

サーバーMongoDB

これはサーバー上の10genからの元のmongodbです

したがって、これら2つのデータベースのために、Meteorはmongodb機能をラップMeteor.Collectionして、クライアントとサーバーの両方で同じコードを使用できるようにする必要があります。

デフォルトでは、meteorはオブジェクトIDを使用せず、ランダムな英数字のテキストを使用します。これは、URLでIDを、html属性でIDを簡単に使用できるようにするために行われます。

使用する場合は、サーバー側でmongodbのObjectIDの指定を使用new Meteor.Collection.ObjectID()するオブジェクトを取得します。ObjectIDオブジェクトIDのタイムスタンプ値は保持されませんが、これが実際に害を及ぼすことはありません。

于 2013-03-10T08:07:31.207 に答える
5

0.9.1 以降、 Meteor はMongo.ObjectIDの代わりに使用することを提案していますMeteor.Collection.ObjectID。基本的にどちらも同じです。命名規則のその他の変更については、history.mdを確認してください。

于 2014-10-31T16:26:11.847 に答える