web-dev-qa-db-ja.com

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

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

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

30
hoodoy

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

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

_Meteor.Collection_の名前の下にあります。 EJSONを使用して、オブジェクトIDを通常のJSONでクライアントエンドに保持します。基本的に流星を含む2つのデータベースがあるため

Minimongo

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

サーバーMongoDB

これは、サーバー上の10genからのオリジナルのmongodbです。

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

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

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

36
Akshat

0.9.1以降、MeteorはMongo.ObjectIDではなくMeteor.Collection.ObjectIDの使用を提案しています。基本的には両方とも同じです。 history.md をチェックして、命名規則のその他の変更点を確認してください。

5
Rajanand02